diff options
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_screen.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c index 16750f2717e..00e7bc6cb77 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.c +++ b/src/mesa/drivers/dri/intel/intel_screen.c @@ -368,6 +368,9 @@ intel_create_image_from_name(__DRIscreen *screen, int cpp; image = intel_allocate_image(format, loaderPrivate); + if (image == NULL) + return NULL; + if (image->format == MESA_FORMAT_NONE) cpp = 1; else @@ -504,6 +507,9 @@ intel_create_image(__DRIscreen *screen, } image = intel_allocate_image(format, loaderPrivate); + if (image == NULL) + return NULL; + cpp = _mesa_get_format_bytes(image->format); image->region = intel_region_alloc(intelScreen, tiling, cpp, width, height, true); @@ -707,6 +713,9 @@ intel_from_planar(__DRIimage *parent, int plane, void *loaderPrivate) stride = parent->strides[index]; image = intel_allocate_image(dri_format, loaderPrivate); + if (image == NULL) + return NULL; + if (offset + height * stride > parent->region->bo->size) { _mesa_warning(NULL, "intel_create_sub_image: subimage out of bounds"); free(image); |