summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--recipes/xorg-driver/xf86-input-tslib/double-free-crash.patch20
-rw-r--r--recipes/xorg-driver/xf86-input-tslib_0.0.6.bb3
2 files changed, 22 insertions, 1 deletions
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
index 0000000000..07754731dd
--- /dev/null
+++ b/recipes/xorg-driver/xf86-input-tslib/double-free-crash.patch
@@ -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);
+ }
+
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 84d2da0ffd..cce5e9bdd1 100644
--- a/recipes/xorg-driver/xf86-input-tslib_0.0.6.bb
+++ b/recipes/xorg-driver/xf86-input-tslib_0.0.6.bb
@@ -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() {