diff options
author | marha <marha@users.sourceforge.net> | 2009-11-23 10:29:29 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2009-11-23 10:29:29 +0000 |
commit | 98899a80f02b9616a1038c4c51993435c1074046 (patch) | |
tree | 530c3b88b2401a695471cdd77f8c50932c6534f2 /xorg-server | |
parent | f593d6eca47fbea066dea42c074f66f6b82769b5 (diff) | |
download | vcxsrv-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.c | 4 |
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; |