aboutsummaryrefslogtreecommitdiff
path: root/xorg-server
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2009-11-23 10:29:29 +0000
committermarha <marha@users.sourceforge.net>2009-11-23 10:29:29 +0000
commit98899a80f02b9616a1038c4c51993435c1074046 (patch)
tree530c3b88b2401a695471cdd77f8c50932c6534f2 /xorg-server
parentf593d6eca47fbea066dea42c074f66f6b82769b5 (diff)
downloadvcxsrv-98899a80f02b9616a1038c4c51993435c1074046.tar.gz
vcxsrv-98899a80f02b9616a1038c4c51993435c1074046.tar.bz2
vcxsrv-98899a80f02b9616a1038c4c51993435c1074046.zip
Solved problem of accessing memory after being freed.
Diffstat (limited to 'xorg-server')
-rw-r--r--xorg-server/glx/glxext.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/xorg-server/glx/glxext.c b/xorg-server/glx/glxext.c
index 42fcf5914..c8885fd3a 100644
--- a/xorg-server/glx/glxext.c
+++ b/xorg-server/glx/glxext.c
@@ -129,8 +129,10 @@ static int glxBlockClients;
static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid)
{
__GLXcontext *c;
+ __GLXcontext *cnext;
- for (c = glxAllContexts; c; c = c->next) {
+ for (c = glxAllContexts; c; c = cnext) {
+ cnext=c->next; /* Safe because c is going to be freed */
if (c->isCurrent && (c->drawPriv == glxPriv || c->readPriv == glxPriv)) {
int i;