summaryrefslogtreecommitdiff
path: root/dix/events.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2013-08-16 15:30:59 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2013-08-30 14:26:55 +1000
commit82939e02392cbb880313fe92957091ff89ce2f2b (patch)
treebc72982494040c5df61ae53b04cd524c2b6fe661 /dix/events.c
parent16894df1ffb6fe21bf723dd954578e8d934799ca (diff)
dix: check for grab type before checking XI2 mask
if the grab type isn't XI2, grab->xi2mask is random. That random data may have the enter/leave mask set, leading to events sent to the client that the client can't handler. Source of these errors: _xgeWireToEvent: Unknown extension 131, this should never happen. Simplest reproducer: Start Xephyr, press button inside window, move out. As the pointer leaves the Xephyr window, the errors appear. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Adam Jackson <ajax@redhat.com>
Diffstat (limited to 'dix/events.c')
-rw-r--r--dix/events.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/dix/events.c b/dix/events.c
index 4e6a175f3..086601a69 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -4653,7 +4653,7 @@ DeviceEnterLeaveEvent(DeviceIntPtr mouse,
filter = GetEventFilter(mouse, (xEvent *) event);
- if (grab) {
+ if (grab && grab->type == XI2) {
Mask mask;
mask = xi2mask_isset(grab->xi2mask, mouse, type);