From 210cd12c47d063f97915ff23292b61d09abfd73a Mon Sep 17 00:00:00 2001 From: Chase Douglas Date: Tue, 10 Apr 2012 17:12:40 -0700 Subject: [PATCH] Don't update listener after deactivating implicit pointer grab After the pointer grab is deactivated, the touch listener record is updated at the end of DeliverTouchEmulatedEvent. However, the touch record is ended when the grab is deactivated, so the update to the listener record is in an array of memory that has been freed. Signed-off-by: Chase Douglas Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- Xi/exevents.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Xi/exevents.c b/Xi/exevents.c index ff2224094..31171239f 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1389,8 +1389,10 @@ DeliverTouchEmulatedEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, if (ev->any.type == ET_TouchEnd && !dev->button->buttonsDown && - dev->deviceGrab.fromPassiveGrab && GrabIsPointerGrab(grab)) + dev->deviceGrab.fromPassiveGrab && GrabIsPointerGrab(grab)) { (*dev->deviceGrab.DeactivateGrab) (dev); + return Success; + } } } else {