summaryrefslogtreecommitdiff
path: root/Xext/geext.h
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2008-07-08 16:02:13 +0930
committerPeter Hutterer <peter.hutterer@who-t.net>2008-07-10 16:02:55 +0930
commitacce27093571497a0626cee1cdb61ddf751dbc40 (patch)
tree82676a6dd2f5a03939cec42bf607b5bff9ae4109 /Xext/geext.h
parentdb86b8839f286e0e2efb5638b8ab2fe608707655 (diff)
Xext: store the GenericMasks in the resource system.
This fixes a severe issue - when the client died the event mask didn't get unregistered and a future event would dereference dangling pointers. By storing the event masks in the resource system we can free them when the client dies.
Diffstat (limited to 'Xext/geext.h')
-rw-r--r--Xext/geext.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/Xext/geext.h b/Xext/geext.h
index 84539a94a..3d1665373 100644
--- a/Xext/geext.h
+++ b/Xext/geext.h
@@ -43,10 +43,10 @@ from the author.
* A grab has only one instance of this struct.
*/
typedef struct _GenericMaskRec {
- ClientPtr client; /* client who set the event mask */
+ struct _GenericMaskRec* next;
+ XID resource; /* id for the resource manager */
DeviceIntPtr dev;
Mask eventMask[MAXEXTENSIONS]; /* one mask per extension */
- struct _GenericMaskRec* next;
} GenericMaskRec, *GenericMaskPtr;