summaryrefslogtreecommitdiff
path: root/recipes/xorg-driver/xf86-input-tslib
diff options
context:
space:
mode:
authorStanislav Brabec <utx@penguin.cz>2010-01-20 20:51:27 +0000
committerutx@penguin.cz <utx@penguin.cz>2010-01-20 20:51:27 +0000
commitc71044be4d589d8207ed9d60e418d36003948c1b (patch)
tree6b924c003ffde67bf472dc63c49f13a10bce1b55 /recipes/xorg-driver/xf86-input-tslib
parent1a6ebaa5ed73ef1aaaf7023d81fc0679cc86786d (diff)
xf86-input-tslib: Fix double free crash while on chvt or exit.
* For more see recipes/xorg-driver/xf86-input-tslib/double-free-crash.patch
Diffstat (limited to 'recipes/xorg-driver/xf86-input-tslib')
-rw-r--r--recipes/xorg-driver/xf86-input-tslib/double-free-crash.patch20
1 files changed, 20 insertions, 0 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);
+ }
+