Reported with other leaks found by cppcheck in bugzilla #50281 https://bugs.freedesktop.org/show_bug.cgi?id=50281
Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> --- 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, -- 1.7.9.2 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel