From f7e121d58819a1566d063f82668819f10f5a66d7 Mon Sep 17 00:00:00 2001 From: David-John Willis Date: Tue, 9 Feb 2010 12:08:01 +0000 Subject: xf86-input-tslib 0.0.6: Add patch for XOrg 1.7.4 to fix crashes on XGetPointerControl request. * From Grazvydas Ignotas - Already pushed to mainline for next xf86-input-tslib release. --- .../xserver-174-XGetPointerControl.patch | 34 ++++++++++++++++++++++ recipes/xorg-driver/xf86-input-tslib_0.0.6.bb | 8 +++-- 2 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 recipes/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch (limited to 'recipes') diff --git a/recipes/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch b/recipes/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch new file mode 100644 index 0000000000..a1f6ba8f9e --- /dev/null +++ b/recipes/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch @@ -0,0 +1,34 @@ +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: diff --git a/recipes/xorg-driver/xf86-input-tslib_0.0.6.bb b/recipes/xorg-driver/xf86-input-tslib_0.0.6.bb index 6918ff485f..6252459535 100644 --- a/recipes/xorg-driver/xf86-input-tslib_0.0.6.bb +++ b/recipes/xorg-driver/xf86-input-tslib_0.0.6.bb @@ -4,11 +4,13 @@ DESCRIPTION = "X.Org X server -- tslib input driver" RRECOMMENDS += "hal tslib-calibrate" DEPENDS += "tslib" -PR = "r10" +PR = "r11" SRC_URI = "http://www.pengutronix.de/software/xf86-input-tslib/download/xf86-input-tslib-${PV}.tar.bz2 \ - file://double-free-crash.patch;patch=1 \ - file://10-x11-input-tslib.fdi" + file://double-free-crash.patch;patch=1 \ + file://10-x11-input-tslib.fdi \ + file://xserver-174-XGetPointerControl.patch;patch=1 \ +" do_configure_prepend() { rm -rf ${S}/m4/ || true -- cgit v1.2.3