From 82939e02392cbb880313fe92957091ff89ce2f2b Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 16 Aug 2013 15:30:59 +1000 Subject: [PATCH] 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 Reviewed-by: Adam Jackson --- dix/events.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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);