[PATCH 111/173] USB: cdc-acm: fix potential null-pointer dereference on disconnect

From: Willy Tarreau
Date: Mon Apr 25 2011 - 16:48:08 EST


2.6.27.59-stable review patch. If anyone has any objections, please let us know.

------------------

From: Johan Hovold <jhovold@xxxxxxxxx>

commit 7e7797e7f6f7bfab73fca02c65e40eaa5bb9000c upstream.

Fix potential null-pointer exception on disconnect introduced by commit
11ea859d64b69a747d6b060b9ed1520eab1161fe (USB: additional power savings
for cdc-acm devices that support remote wakeup).

Only access acm->dev after making sure it is non-null in control urb
completion handler.

Signed-off-by: Johan Hovold <jhovold@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>

---
drivers/usb/class/cdc-acm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Index: longterm-2.6.27/drivers/usb/class/cdc-acm.c
===================================================================
--- longterm-2.6.27.orig/drivers/usb/class/cdc-acm.c 2011-01-23 10:52:26.000000000 +0100
+++ longterm-2.6.27/drivers/usb/class/cdc-acm.c 2011-04-25 16:30:06.372280691 +0200
@@ -285,6 +285,8 @@
if (!ACM_READY(acm))
goto exit;

+ usb_mark_last_busy(acm->dev);
+
data = (unsigned char *)(dr + 1);
switch (dr->bNotificationType) {

@@ -319,7 +321,6 @@
break;
}
exit:
- usb_mark_last_busy(acm->dev);
retval = usb_submit_urb (urb, GFP_ATOMIC);
if (retval)
err ("%s - usb_submit_urb failed with result %d",


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