aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2016-05-08 20:08:02 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-06-01 12:12:47 -0700
commit25d3b85bcf6156a3549da975a7a834c4f5b53185 (patch)
treef849ed2ec43fe85b96862aca37e476366caec855
parentfaa611341c9661b77b5a086d19c2511b0305a2e5 (diff)
downloadlinux-yocto-25d3b85bcf6156a3549da975a7a834c4f5b53185.tar.gz
linux-yocto-25d3b85bcf6156a3549da975a7a834c4f5b53185.tar.bz2
linux-yocto-25d3b85bcf6156a3549da975a7a834c4f5b53185.zip
USB: serial: quatech2: fix use-after-free in probe error path
commit 028c49f5e02a257c94129cd815f7c8485f51d4ef upstream. The interface read URB is submitted in attach, but was only unlinked by the driver at disconnect. In case of a late probe error (e.g. due to failed minor allocation), disconnect is never called and we would end up with active URBs for an unbound interface. This in turn could lead to deallocated memory being dereferenced in the completion callback. Fixes: f7a33e608d9a ("USB: serial: add quatech2 usb to serial driver") Signed-off-by: Johan Hovold <johan@kernel.org> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/serial/quatech2.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/serial/quatech2.c b/drivers/usb/serial/quatech2.c
index 7725ed261ed6..62e449db24c3 100644
--- a/drivers/usb/serial/quatech2.c
+++ b/drivers/usb/serial/quatech2.c
@@ -141,6 +141,7 @@ static void qt2_release(struct usb_serial *serial)
serial_priv = usb_get_serial_data(serial);
+ usb_kill_urb(serial_priv->read_urb);
usb_free_urb(serial_priv->read_urb);
kfree(serial_priv->read_buffer);
kfree(serial_priv);