]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
USB: serial: quatech2: fix use-after-free in probe error path
authorJohan Hovold <johan@kernel.org>
Sun, 8 May 2016 18:08:02 +0000 (20:08 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Jun 2016 19:12:47 +0000 (12:12 -0700)
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>
drivers/usb/serial/quatech2.c

index 7725ed261ed6abb6de36655b62e48a2c9ca345f7..62e449db24c335a9cf5795743359c9b9af9d2c5e 100644 (file)
@@ -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);