mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-21 16:50:06 +01:00
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:
parent
f377141912
commit
ae982a27e4
1 changed files with 30 additions and 28 deletions
|
|
@ -81,8 +81,8 @@ __glXDeassociateContext(__GLXcontext *glxc)
|
||||||
__GLXcontext *curr, *prev;
|
__GLXcontext *curr, *prev;
|
||||||
|
|
||||||
prev = NULL;
|
prev = NULL;
|
||||||
for ( curr = glxc->drawPriv->drawGlxc
|
if (glxc->drawPriv) {
|
||||||
; curr != NULL
|
for ( curr = glxc->drawPriv->drawGlxc; curr != NULL
|
||||||
; prev = curr, curr = curr->nextDrawPriv ) {
|
; prev = curr, curr = curr->nextDrawPriv ) {
|
||||||
if (curr == glxc) {
|
if (curr == glxc) {
|
||||||
/* found context. Deassociate. */
|
/* found context. Deassociate. */
|
||||||
|
|
@ -96,9 +96,10 @@ __glXDeassociateContext(__GLXcontext *glxc)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
prev = NULL;
|
prev = NULL;
|
||||||
|
if (glxc->readPriv) {
|
||||||
for ( curr = glxc->readPriv->readGlxc
|
for ( curr = glxc->readPriv->readGlxc
|
||||||
; curr != NULL
|
; curr != NULL
|
||||||
; prev = curr, curr = curr->nextReadPriv ) {
|
; prev = curr, curr = curr->nextReadPriv ) {
|
||||||
|
|
@ -114,6 +115,7 @@ __glXDeassociateContext(__GLXcontext *glxc)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue