diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2008-07-08 16:02:13 +0930 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2008-07-10 16:02:55 +0930 |
commit | acce27093571497a0626cee1cdb61ddf751dbc40 (patch) | |
tree | 82676a6dd2f5a03939cec42bf607b5bff9ae4109 /Xext/geext.h | |
parent | db86b8839f286e0e2efb5638b8ab2fe608707655 (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.h | 4 |
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; |