diff options
author | Andres Salomon <dilinger@queued.net> | 2008-01-17 18:01:30 +0100 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2008-01-17 18:01:30 +0100 |
commit | 746b31a9d4e08240d267069bcf5084eb7e427ad7 (patch) | |
tree | 34abba83caf7dde6c22dc13bf26e0ee11e136b41 /drivers/input | |
parent | Input: usbtouchscreen - fix buffer overflow, make more egalax work (diff) | |
download | linux-746b31a9d4e08240d267069bcf5084eb7e427ad7.tar.xz linux-746b31a9d4e08240d267069bcf5084eb7e427ad7.zip |
Input: psmouse - fix potential memory leak in psmouse_connect()
If we successfully call input_register_device() in psmouse_connect()
but sysfs_create_group() fails, we'll enter the error path without
ever having called input_unregister_device() potentially leaking
memory.
Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/mouse/psmouse-base.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c index 21a9c0b69a1f..b8628252e10c 100644 --- a/drivers/input/mouse/psmouse-base.c +++ b/drivers/input/mouse/psmouse-base.c @@ -1247,6 +1247,8 @@ static int psmouse_connect(struct serio *serio, struct serio_driver *drv) err_pt_deactivate: if (parent && parent->pt_deactivate) parent->pt_deactivate(parent); + input_unregister_device(psmouse->dev); + input_dev = NULL; /* so we don't try to free it below */ err_protocol_disconnect: if (psmouse->disconnect) psmouse->disconnect(psmouse); |