blob: a1f6ba8f9e8638c2109f3392272191d1e5bb1e4c [file] [log] [blame]
From Grazvydas Ignotas
At least xserver 1.7.4 crashes on XGetPointerControl request because of xf86-input-tslib:
Program received signal SIGSEGV, Segmentation fault.
#0 0x000355e0 in ProcGetPointerControl (client=0x4a2e58) at devices.c:2122
#1 0x00062fa8 in Dispatch () at dispatch.c:439
#2 0x00022444 in main (argc=4, argv=0xbeebedc4, envp=0xbeebedd8) at main.c:285
This happens because ptrfeed field is not set in device structure from tslib.
To fix this, call InitPtrFeedbackClassDeviceStruct() during DEVICE_INIT to get necessary setup done (as done in other input drivers).
---
diff -ur xf86-input-tslib-0.0.6/src/tslib.c xf86-input-tslib-0.0.6_/src/tslib.c
--- xf86-input-tslib-0.0.6/src/tslib.c 2010-02-09 12:23:22.000000000 +0200
+++ xf86-input-tslib-0.0.6_/src/tslib.c 2010-02-09 12:37:33.000000000 +0200
@@ -103,8 +103,6 @@
static void
PointerControlProc(DeviceIntPtr dev, PtrCtrl * ctrl)
{
- ErrorF("%s\n", __FUNCTION__);
- return;
}
static Bool
@@ -406,6 +404,8 @@
xf86MotionHistoryAllocate(pInfo);
#endif
+ if (!InitPtrFeedbackClassDeviceStruct(device, PointerControlProc))
+ return !Success;
break;
case DEVICE_ON: