xf86-input-tslib: Fix double free crash while on chvt or exit.
authorStanislav Brabec <utx@penguin.cz>
Wed, 20 Jan 2010 20:51:27 +0000 (20:51 +0000)
committerutx@penguin.cz <utx@penguin.cz>
Wed, 20 Jan 2010 20:51:27 +0000 (20:51 +0000)
* For more see recipes/xorg-driver/xf86-input-tslib/double-free-crash.patch

recipes/xorg-driver/xf86-input-tslib/double-free-crash.patch [new file with mode: 0644]
recipes/xorg-driver/xf86-input-tslib_0.0.6.bb

diff --git a/recipes/xorg-driver/xf86-input-tslib/double-free-crash.patch b/recipes/xorg-driver/xf86-input-tslib/double-free-crash.patch
new file mode 100644 (file)
index 0000000..0775473
--- /dev/null
@@ -0,0 +1,20 @@
+xorg-server-1.7.3/hw/xfree86/common/xf86Helper.c contains this code
+causing a double free crash on chvt or exit:
+
+    /* This should *really* be handled in drv->UnInit(dev) call instead, but
+     * if the driver forgets about it make sure we free it or at least crash
+     * with flying colors */
+    if (pInp->private)
+       xfree(pInp->private);
+Index: xf86-input-tslib-0.0.6/src/tslib.c
+===================================================================
+--- xf86-input-tslib-0.0.6.orig/src/tslib.c
++++ xf86-input-tslib-0.0.6/src/tslib.c
+@@ -435,6 +435,7 @@ xf86TslibUninit(InputDriverPtr drv, Inpu
+       xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
+       ts_close(priv->ts);
+       xfree(pInfo->private);
++      pInfo->private = NULL;
+       xf86DeleteInput(pInfo, 0);
+ }
index 84d2da0..cce5e9b 100644 (file)
@@ -4,9 +4,10 @@ DESCRIPTION = "X.Org X server -- tslib input driver"
 RRECOMMENDS += "hal tslib-calibrate"
 DEPENDS += "tslib"
 
-PR = "r8"
+PR = "r9"
 
 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"
 
 do_configure_prepend() {