diff --git a/src/gallium/drivers/nouveau/nv50/nv50_state.c b/src/gallium/drivers/nouveau/nv50/nv50_state.c index 6488c71f4ad..c176fa6fe93 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_state.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_state.c @@ -1267,9 +1267,13 @@ nv50_set_global_bindings(struct pipe_context *pipe, if (nv50->global_residents.size <= (end * sizeof(struct pipe_resource *))) { const unsigned old_size = nv50->global_residents.size; - util_dynarray_resize(&nv50->global_residents, struct pipe_resource *, end); - memset((uint8_t *)nv50->global_residents.data + old_size, 0, - nv50->global_residents.size - old_size); + if (util_dynarray_resize(&nv50->global_residents, struct pipe_resource *, end)) { + memset((uint8_t *)nv50->global_residents.data + old_size, 0, + nv50->global_residents.size - old_size); + } else { + NOUVEAU_ERR("Could not resize global residents array\n"); + return; + } } if (resources) { diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_state.c b/src/gallium/drivers/nouveau/nvc0/nvc0_state.c index 49546e5de68..d53a6cb2a26 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_state.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_state.c @@ -1384,9 +1384,13 @@ nvc0_set_global_bindings(struct pipe_context *pipe, if (nvc0->global_residents.size <= (end * sizeof(struct pipe_resource *))) { const unsigned old_size = nvc0->global_residents.size; - util_dynarray_resize(&nvc0->global_residents, struct pipe_resource *, end); - memset((uint8_t *)nvc0->global_residents.data + old_size, 0, - nvc0->global_residents.size - old_size); + if (util_dynarray_resize(&nvc0->global_residents, struct pipe_resource *, end)) { + memset((uint8_t *)nvc0->global_residents.data + old_size, 0, + nvc0->global_residents.size - old_size); + } else { + NOUVEAU_ERR("Could not resize global residents array\n"); + return; + } } if (resources) {