From 88c767edb01ed7efb19ffe3a453e16107b27130b Mon Sep 17 00:00:00 2001 From: Michal Suchanek Date: Wed, 23 May 2012 11:22:05 +0200 Subject: [PATCH] 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 Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- dix/getevents.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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))