summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-04-30 16:05:09 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-05-04 13:45:20 +1000
commita9a443959585e7f65ba3f300d387cf617d9df77b (patch)
tree332777649c6529e408f1c43d67756f260d9ce83e
parent6dc7f5e127b4b60b27f661862c5698e6f9ea7e49 (diff)
If QueryHardware failed, return that failure and clean up.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Christoph Brill <egore911@egore911.de> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
-rw-r--r--src/synaptics.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/synaptics.c b/src/synaptics.c
index bc4b1b4..5127018 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -715,7 +715,15 @@ DeviceOn(DeviceIntPtr dev)
xf86FlushInput(local->fd);
/* reinit the pad */
- QueryHardware(local);
+ if (!QueryHardware(local))
+ {
+ XisbFree(priv->comm.buffer);
+ priv->comm.buffer = NULL;
+ xf86CloseSerial(local->fd);
+ local->fd = -1;
+ return !Success;
+ }
+
xf86AddEnabledDevice(local);
dev->public.on = TRUE;
@@ -2197,6 +2205,7 @@ QueryHardware(LocalDevicePtr local)
xf86Msg(X_PROBED, "%s: no supported touchpad found\n", local->name);
if (priv->proto_ops->DeviceOffHook)
priv->proto_ops->DeviceOffHook(local);
+ return FALSE;
}
return TRUE;