From f4416323fcbfdd8dec84e707b664ac1044dc14d3 Mon Sep 17 00:00:00 2001 From: Siavash Eliasi Date: Mon, 10 Feb 2014 13:28:15 +0330 Subject: gbm/dri: Fixed buffer object memory leak in case of failure. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Kristian Høgsberg --- src/gbm/backends/dri/gbm_dri.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/gbm') 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 * -- cgit v1.2.3