Mesa (master): xlib: fix memory leak on Display close

Brian Paul brianp at kemper.freedesktop.org
Tue Apr 12 19:57:46 UTC 2016


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

Author: John Sheu <sheu at google.com>
Date:   Tue Apr 12 12:53:00 2016 -0600

xlib: fix memory leak on Display close

The XMesaVisual instances freed in the visuals table on display close
are being freed with a free() call, instead of XMesaDestroyVisual(),
causing a memory leak.

Signed-off-by: John Sheu <sheu at google.com>
Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/mesa/drivers/x11/fakeglx.c | 2 +-
 src/mesa/drivers/x11/xm_api.c  | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/x11/fakeglx.c b/src/mesa/drivers/x11/fakeglx.c
index 80b7176..2f4d966 100644
--- a/src/mesa/drivers/x11/fakeglx.c
+++ b/src/mesa/drivers/x11/fakeglx.c
@@ -794,7 +794,7 @@ destroy_visuals_on_display(Display *dpy)
       if (VisualTable[i]->display == dpy) {
          /* remove this visual */
          int j;
-         free(VisualTable[i]);
+         XMesaDestroyVisual(VisualTable[i]);
          for (j = i; j < NumVisuals - 1; j++)
             VisualTable[j] = VisualTable[j + 1];
          NumVisuals--;
diff --git a/src/mesa/drivers/x11/xm_api.c b/src/mesa/drivers/x11/xm_api.c
index 65e7ca8..82c4d18 100644
--- a/src/mesa/drivers/x11/xm_api.c
+++ b/src/mesa/drivers/x11/xm_api.c
@@ -856,6 +856,7 @@ XMesaVisual XMesaCreateVisual( XMesaDisplay *display,
                                 accum_red_size, accum_green_size,
                                 accum_blue_size, accum_alpha_size,
                                 0)) {
+      free(v->visinfo);
       free(v);
       return NULL;
    }




More information about the mesa-commit mailing list