summaryrefslogtreecommitdiff
path: root/Xi
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 /Xi
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 'Xi')
-rw-r--r--Xi/extgrbdev.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Xi/extgrbdev.c b/Xi/extgrbdev.c
index c982fca2c..050984a8e 100644
--- a/Xi/extgrbdev.c
+++ b/Xi/extgrbdev.c
@@ -175,7 +175,7 @@ ProcXExtendedGrabDevice(ClientPtr client)
(XGenericEventMask*)(((XEventClass*)&stuff[1]) + stuff->event_count);
gemasks = xcalloc(1, sizeof(GenericMaskRec));
- gemasks->client = client;
+ gemasks->resource = FakeClientID(client->index);
gemasks->next = NULL;
gemasks->eventMask[xgeMask->extension & 0x7F] = xgeMask->evmask;