On 02/10/2013 12:39 PM, Alan Coopersmith wrote:
Reported with other leaks found by cppcheck in bugzilla #50281
https://bugs.freedesktop.org/show_bug.cgi?id=50281

Signed-off-by: Alan Coopersmith <[email protected]>

Reviewed-by: Ian Romanick <[email protected]>

---
  glx/glxdri.c |    8 ++++++--
  1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/glx/glxdri.c b/glx/glxdri.c
index da46468..1563e51 100644
--- a/glx/glxdri.c
+++ b/glx/glxdri.c
@@ -645,8 +645,10 @@ __glXDRIscreenCreateContext(__GLXscreen * baseScreen,
      for (i = 0; i < pScreen->numVisuals; i++, visual++)
          if (visual->vid == glxConfig->visualID)
              break;
-    if (i == pScreen->numVisuals)
+    if (i == pScreen->numVisuals) {
+        free(context);
          return NULL;
+    }

      context->hwContextID = FakeClientID(0);

@@ -655,8 +657,10 @@ __glXDRIscreenCreateContext(__GLXscreen * baseScreen,
                                context->hwContextID, &hwContext);
      __glXleaveServer(GL_FALSE);

-    if (!retval)
+    if (!retval) {
+        free(context);
          return NULL;
+    }

      context->driContext = screen->legacy->createNewContext(screen->driScreen, 
config->driConfig, 0,     /* render type */
                                                             driShare,


_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to