Peter Hutterer <[email protected]> writes: > Using client->clientAsMask as resource for implicit passive grabs causes > resource conflict with client-allocated resources. Freeing the passive grab > frees all resources with that ID, so arbitrary resources can get freed while > still in use. This causes random crashes.
Oh, another question -- I can't see any possible way a window resource
ID in a TouchListener wouldn't reference the window pointer which is
already present. If so, RetrieveTouchDeliveryData could be further
simplified:
@@ -1315,15 +1315,7 @@ RetrieveTouchDeliveryData(DeviceIntPtr dev,
TouchPointInfoPtr ti,
*mask = (*grab)->xi2mask;
}
else {
- if (listener->level == CORE)
- rc = dixLookupWindow(win, listener->listener,
- serverClient, DixSendAccess);
- else
- rc = dixLookupResourceByType((pointer *) win, listener->listener,
- RT_INPUTCLIENT,
- serverClient, DixSendAccess);
- if (rc != Success)
- return FALSE;
+ *win = listener->window;
if (listener->level == XI2) {
int evtype;
--
[email protected]
pgpgcI16JE0gs.pgp
Description: PGP signature
_______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
