From e00e2e7b68fbc932269d607ac5dc2c441d07ad9d Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 23 Aug 2010 08:35:01 +1000 Subject: [PATCH] xfree86: Check for existence of button class before dereferencing it. The Irxon Super Mini Bluetooth Wireless Keyboard for PC/PDA/Cell Phones keyboards have axes but not buttons. The evdev driver doesn't set up a button class for these keyboards and a motion event handled by DGAProcessPointerEvent dereferences the dev->button NULL pointer, causing a server crash. Signed-off-by: Peter Hutterer Reviewed-by: Keith Packard --- hw/xfree86/common/xf86DGA.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c index 82fb52a05..c468c6038 100644 --- a/hw/xfree86/common/xf86DGA.c +++ b/hw/xfree86/common/xf86DGA.c @@ -1095,7 +1095,7 @@ DGAProcessPointerEvent (ScreenPtr pScreen, DGAEvent *event, DeviceIntPtr mouse) ev.header = ET_Internal; ev.length = sizeof(ev); ev.type = event->subtype; - ev.corestate = butc->state; + ev.corestate = butc ? butc->state : 0; if (master && master->key) ev.corestate |= XkbStateFieldFromRec(&master->key->xkbInfo->state);