Re: [PATCH] input: psmouse: fix potential input register race in psmouse_connect()

2008-01-15 Thread Dmitry Torokhov
On Sat, Jan 12, 2008 at 03:13:45PM -0500, Andres Salomon wrote:
> 
> 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, or creating a race condition if something else attempts
> to access the new input device).  This calls input_unregister_device
> from the error path, and sets input_dev to NULL so that we don't
> attempt to also call input_free_device on it.
> 
> Signed-off-by: Andres Salomon <[EMAIL PROTECTED]>

Applied, thank you Andres.

-- 
Dmitry

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] input: psmouse: fix potential input register race in psmouse_connect()

2008-01-15 Thread Dmitry Torokhov
On Sat, Jan 12, 2008 at 03:13:45PM -0500, Andres Salomon wrote:
 
 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, or creating a race condition if something else attempts
 to access the new input device).  This calls input_unregister_device
 from the error path, and sets input_dev to NULL so that we don't
 attempt to also call input_free_device on it.
 
 Signed-off-by: Andres Salomon [EMAIL PROTECTED]

Applied, thank you Andres.

-- 
Dmitry

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] input: psmouse: fix potential input register race in psmouse_connect()

2008-01-12 Thread Andres Salomon

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, or creating a race condition if something else attempts
to access the new input device).  This calls input_unregister_device
from the error path, and sets input_dev to NULL so that we don't
attempt to also call input_free_device on it.

Signed-off-by: Andres Salomon <[EMAIL PROTECTED]>
---
 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 21a9c0b..df25e7b 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;
  err_protocol_disconnect:
if (psmouse->disconnect)
psmouse->disconnect(psmouse);
-- 
1.5.3.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] input: psmouse: fix potential input register race in psmouse_connect()

2008-01-12 Thread Andres Salomon

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, or creating a race condition if something else attempts
to access the new input device).  This calls input_unregister_device
from the error path, and sets input_dev to NULL so that we don't
attempt to also call input_free_device on it.

Signed-off-by: Andres Salomon [EMAIL PROTECTED]
---
 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 21a9c0b..df25e7b 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;
  err_protocol_disconnect:
if (psmouse-disconnect)
psmouse-disconnect(psmouse);
-- 
1.5.3.5

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/