summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Suchanek <hramrach@gmail.com>2012-05-23 11:22:05 +0200
committerPeter Hutterer <peter.hutterer@who-t.net>2012-06-04 11:28:44 +1000
commit88c767edb01ed7efb19ffe3a453e16107b27130b (patch)
treec0e4474dfa44ae9333417cbb22f74cc7d60602c7
parent594b4a4f0601066d09e49a84c5af8c2eb6f07240 (diff)
Fix crash for motion events from devices without valuators
A WarpPointer request may trigger a motion event on a device without valuators. That request is ignored by GetPointerEvents but during smooth scroll emulation we dereference dev->valuators to get the number of axes. Break out early if the device doesn't have valuators. Signed-off-by: Michal Suchanek <hramrach@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--dix/getevents.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/dix/getevents.c b/dix/getevents.c
index ae4112ffc..4fbaa6c94 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -1615,7 +1615,7 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type,
/* Now turn the smooth-scrolling axes back into emulated button presses
* for legacy clients, based on the integer delta between before and now */
for (i = 0; i < valuator_mask_size(&mask); i++) {
- if (i >= pDev->valuator->numAxes)
+ if ( !pDev->valuator || (i >= pDev->valuator->numAxes))
break;
if (!valuator_mask_isset(&mask, i))