From: Siavash Eliasi Date: Mon, 10 Feb 2014 09:58:15 +0000 (+0330) Subject: gbm/dri: Fixed buffer object memory leak in case of failure. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f4416323fcbfdd8dec84e707b664ac1044dc14d3;p=mesa.git gbm/dri: Fixed buffer object memory leak in case of failure. Reviewed-by: Kristian Høgsberg --- diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c index 5b9998ff6e0..acf6b246af0 100644 --- a/src/gbm/backends/dri/gbm_dri.c +++ b/src/gbm/backends/dri/gbm_dri.c @@ -611,7 +611,7 @@ gbm_dri_bo_create(struct gbm_device *gbm, dri_format = __DRI_IMAGE_FORMAT_XRGB2101010; break; default: - return NULL; + goto failed; } if (usage & GBM_BO_USE_SCANOUT) @@ -628,7 +628,7 @@ gbm_dri_bo_create(struct gbm_device *gbm, dri_format, dri_use, bo); if (bo->image == NULL) - return NULL; + goto failed; dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HANDLE, &bo->base.base.handle.s32); @@ -636,6 +636,10 @@ gbm_dri_bo_create(struct gbm_device *gbm, (int *) &bo->base.base.stride); return &bo->base.base; + +failed: + free(bo); + return NULL; } static struct gbm_surface *