summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Willenbrock <pierre@pirsoft.de>2009-01-30 21:16:48 -0800
committerEric Anholt <eric@anholt.net>2009-02-01 09:06:43 -0800
commit29b3b88dc744f4919c6709747ddb7baac47486c5 (patch)
tree739071828ceea64ae03a6b467d82df0207f3c8d7
parent60bcdd687040db76490851d4b459284ce37020e0 (diff)
Prevent double unref of glxdrawables
Found by valgrind. Bug #18917.
-rw-r--r--glx/glxcmds.c4
-rw-r--r--hw/xfree86/modes/xf86Crtc.c3
2 files changed, 4 insertions, 3 deletions
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
index af52672f1..33954ee64 100644
--- a/glx/glxcmds.c
+++ b/glx/glxcmds.c
@@ -146,6 +146,8 @@ __glXContextDestroy(__GLXcontext *context)
__glXUnrefDrawable(context->drawPriv);
if (context->readPriv)
__glXUnrefDrawable(context->readPriv);
+ context->drawPriv = NULL;
+ context->readPriv = NULL;
}
__glXFlushContextCache();
}
@@ -621,6 +623,8 @@ DoMakeCurrent(__GLXclientState *cl,
__glXUnrefDrawable(prevglxc->drawPriv);
if (prevglxc->readPriv)
__glXUnrefDrawable(prevglxc->readPriv);
+ prevglxc->drawPriv = NULL;
+ prevglxc->readPriv = NULL;
}
}
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 30308ade4..40352b4fd 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -3159,9 +3159,6 @@ xf86_crtc_supports_gamma(ScrnInfoPtr pScrn)
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
xf86CrtcPtr crtc;
- if (!xf86_config)
- return FALSE;
-
if (xf86_config->num_crtc == 0)
return FALSE;
crtc = xf86_config->crtc[0];