From 99583ddd81e42158ff740b4a7fc51389854ba057 Mon Sep 17 00:00:00 2001 From: Frederik Hertzum Date: Sat, 5 Jul 2025 12:33:56 +0200 Subject: [PATCH] add null pointer checks for listener, dev and ti --- Xi/exevents.c | 4 ++-- Xi/exevents.c.rej | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 Xi/exevents.c.rej diff --git a/Xi/exevents.c b/Xi/exevents.c index 41a4097cc..dcbf9a1a8 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1294,13 +1294,13 @@ RetrieveTouchDeliveryData(DeviceIntPtr dev, TouchPointInfoPtr ti, *mask = NULL; *grab = NULL; - if (listener->type == LISTENER_GRAB || + if (listener && listener->type == LISTENER_GRAB || listener->type == LISTENER_POINTER_GRAB) { *grab = listener->grab; BUG_RETURN_VAL(!*grab, FALSE); } - else if (ti->emulate_pointer && dev->deviceGrab.grab && + else if (ti && ti->emulate_pointer && dev && dev->deviceGrab.grab && !dev->deviceGrab.fromPassiveGrab) { /* There may be an active pointer grab on the device */ *grab = dev->deviceGrab.grab; diff --git a/Xi/exevents.c.rej b/Xi/exevents.c.rej new file mode 100644 index 000000000..56408cf07 --- /dev/null +++ b/Xi/exevents.c.rej @@ -0,0 +1,18 @@ +--- exevents.c ++++ exevents.c +@@ -1294,13 +1294,13 @@ RetrieveTouchDeliveryData(DeviceIntPtr dev, TouchPointInfoPtr ti, + *mask = NULL; + *grab = NULL; + +- if (listener->type == LISTENER_GRAB || ++ if (listener && listener->type == LISTENER_GRAB || + listener->type == LISTENER_POINTER_GRAB) { + *grab = listener->grab; + + BUG_RETURN_VAL(!*grab, FALSE); + } +- else if (ti->emulate_pointer && dev->deviceGrab.grab && ++ else if (ti && ti->emulate_pointer && dev && dev->deviceGrab.grab && + !dev->deviceGrab.fromPassiveGrab) { + /* There may be an active pointer grab on the device */ + *grab = dev->deviceGrab.grab;