1 |
From 7dacfde39a027bb868493ba075e2f1d787c9b191 Mon Sep 17 00:00:00 2001 |
2 |
From: Peter Hutterer <peter.hutterer@who-t.net> |
3 |
Date: Thu, 27 Aug 2009 22:16:36 +0000 |
4 |
Subject: Fix module unloading. |
5 |
|
6 |
After calling xfree(priv), local->private must be set NULL. |
7 |
Otherwise the server tries to free it again during xf86DeleteInput. |
8 |
|
9 |
local->name must not be freed, it is set to XI_TOUCHSCREEN during PreInit. |
10 |
|
11 |
local must not be freed, we pass it into xf86DeleteInput. |
12 |
|
13 |
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> |
14 |
--- |
15 |
diff --git a/src/xf86Fpit.c b/src/xf86Fpit.c |
16 |
index f40c6a9..ce7540b 100644 |
17 |
--- a/src/xf86Fpit.c |
18 |
+++ b/src/xf86Fpit.c |
19 |
@@ -589,8 +589,7 @@ static void xf86FpitUninit(InputDriverPtr drv, LocalDevicePtr local, int flags) |
20 |
xf86FpitControl(local->dev, DEVICE_OFF); |
21 |
xfree(priv->fpitDev); |
22 |
xfree(priv); |
23 |
- xfree(local->name); |
24 |
- xfree(local); |
25 |
+ local->private = NULL; |
26 |
xf86DeleteInput(local, 0); |
27 |
} |
28 |
|
29 |
-- |
30 |
cgit v0.8.3-6-g21f6 |