__glXDRIscreenCreateContext: free context on failure, instead of leaking it

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.coopersmith@oracle.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Alan Coopersmith 2013-02-10 10:24:59 -08:00
parent 7ab98bafc9
commit 9567fa9a72

View File

@ -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,