blob: 57a8658936456996be24a8e28ab7730d8e7153a8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
--- xorg-server.orig/Xi/xiselectev.c 2012-05-17 19:09:01.000000000 +0200
+++ xorg-server/Xi/xiselectev.c 2012-12-18 10:29:38.804469850 +0100
@@ -175,17 +175,24 @@
if (inputMasks)
iclient = inputMasks->inputClients;
for (; iclient; iclient = iclient->next) {
- DeviceIntPtr dummy;
+ DeviceIntPtr devTest;
+ DeviceIntRec dummyTest;
if (CLIENT_ID(iclient->resource) == client->index)
continue;
- dixLookupDevice(&dummy, evmask->deviceid, serverClient,
+ if (evmask->deviceid == XIAllDevices ||
+ evmask->deviceid == XIAllMasterDevices) {
+ dummyTest.id = evmask->deviceid;
+ devTest = &dummyTest;
+ }
+ else
+ dixLookupDevice(&devTest, evmask->deviceid, serverClient,
DixReadAccess);
- if (!dummy)
+ if (!devTest)
return BadImplementation; /* this shouldn't happen */
- if (xi2mask_isset(iclient->xi2mask, dummy, XI_TouchBegin))
+ if (xi2mask_isset(iclient->xi2mask, devTest, XI_TouchBegin))
return BadAccess;
}
}
|