Mesa (master): Fixes for leaks reported by cppcheck.

Kristian Høgsberg krh at kemper.freedesktop.org
Wed Jul 6 14:14:20 UTC 2011


Module: Mesa
Branch: master
Commit: f747d03b1d3aa4e63417bd8486909f63b4a33be4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f747d03b1d3aa4e63417bd8486909f63b4a33be4

Author: Völgyes Dávid <david.volgyes at gmail.com>
Date:   Wed Jul  6 10:10:20 2011 -0400

Fixes for leaks reported by cppcheck.

---

 src/egl/drivers/dri2/egl_dri2.c           |    8 ++++++--
 src/egl/drivers/dri2/platform_x11.c       |    1 +
 src/egl/wayland/wayland-drm/wayland-drm.c |    1 +
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 5680c36..35a598e 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -923,8 +923,10 @@ dri2_create_image_khr_renderbuffer(_EGLDisplay *disp, _EGLContext *ctx,
       return EGL_NO_IMAGE_KHR;
    }
 
-   if (!_eglInitImage(&dri2_img->base, disp))
+   if (!_eglInitImage(&dri2_img->base, disp)) {
+      free(dri2_img);
       return EGL_NO_IMAGE_KHR;
+   }
 
    dri2_img->dri_image = 
       dri2_dpy->image->createImageFromRenderbuffer(dri2_ctx->dri_context,
@@ -1335,8 +1337,10 @@ _EGL_MAIN(const char *args)
 
    memset(dri2_drv, 0, sizeof *dri2_drv);
 
-   if (!dri2_load(&dri2_drv->base))
+   if (!dri2_load(&dri2_drv->base)) {
+      free(dri2_drv);
       return NULL;
+   }
 
    _eglInitDriverFallbacks(&dri2_drv->base);
    dri2_drv->base.API.Initialize = dri2_initialize;
diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c
index 4e00c95..f27bf17 100644
--- a/src/egl/drivers/dri2/platform_x11.c
+++ b/src/egl/drivers/dri2/platform_x11.c
@@ -845,6 +845,7 @@ dri2_create_image_khr_pixmap(_EGLDisplay *disp, _EGLContext *ctx,
    if (!_eglInitImage(&dri2_img->base, disp)) {
       free(buffers_reply);
       free(geometry_reply);
+      free(dri2_img);
       return EGL_NO_IMAGE_KHR;
    }
 
diff --git a/src/egl/wayland/wayland-drm/wayland-drm.c b/src/egl/wayland/wayland-drm/wayland-drm.c
index 3023cd0..ec96c04 100644
--- a/src/egl/wayland/wayland-drm/wayland-drm.c
+++ b/src/egl/wayland/wayland-drm/wayland-drm.c
@@ -104,6 +104,7 @@ drm_create_buffer(struct wl_client *client, struct wl_drm *drm,
 		wl_client_post_error(client, &drm->object,
 				     WL_DRM_ERROR_INVALID_VISUAL,
 				     "invalid visual");
+		free(buffer);
 		return;
 	}
 




More information about the mesa-commit mailing list