diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2009-04-30 16:05:09 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-05-04 13:45:20 +1000 |
commit | a9a443959585e7f65ba3f300d387cf617d9df77b (patch) | |
tree | 332777649c6529e408f1c43d67756f260d9ce83e | |
parent | 6dc7f5e127b4b60b27f661862c5698e6f9ea7e49 (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.c | 11 |
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; |