Input: psmouse - fix potential memory leak in psmouse_connect()
authorAndres Salomon <dilinger@queued.net>
Thu, 17 Jan 2008 17:01:30 +0000 (12:01 -0500)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 17 Jan 2008 17:01:30 +0000 (12:01 -0500)
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>
drivers/input/mouse/psmouse-base.c

index 21a9c0b69a1f461befa62691f0a35baaa99641a6..b8628252e10c5832c0f61c88244200064f5de169 100644 (file)
@@ -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);