glx: test for valid read and draw privates before using them

this should fix a bug where f-spot exiting blows up the X server
This commit is contained in:
Dave Airlie 2008-04-24 16:37:29 +10:00
parent f377141912
commit ae982a27e4

View File

@ -81,8 +81,8 @@ __glXDeassociateContext(__GLXcontext *glxc)
__GLXcontext *curr, *prev;
prev = NULL;
for ( curr = glxc->drawPriv->drawGlxc
; curr != NULL
if (glxc->drawPriv) {
for ( curr = glxc->drawPriv->drawGlxc; curr != NULL
; prev = curr, curr = curr->nextDrawPriv ) {
if (curr == glxc) {
/* found context. Deassociate. */
@ -96,9 +96,10 @@ __glXDeassociateContext(__GLXcontext *glxc)
break;
}
}
}
prev = NULL;
if (glxc->readPriv) {
for ( curr = glxc->readPriv->readGlxc
; curr != NULL
; prev = curr, curr = curr->nextReadPriv ) {
@ -114,6 +115,7 @@ __glXDeassociateContext(__GLXcontext *glxc)
break;
}
}
}
}
/*****************************************************************************/