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 /Xi | |
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 'Xi')
-rw-r--r-- | Xi/extgrbdev.c | 2 |
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; |