]> git.karo-electronics.de Git - karo-tx-linux.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)
committerJohan Hovold <johan@kernel.org>
Tue, 10 May 2016 07:40:09 +0000 (09:40 +0200)
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")
Cc: stable <stable@vger.kernel.org> # v3.5: 40d04738491d
Signed-off-by: Johan Hovold <johan@kernel.org>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/serial/quatech2.c

index 2df8ad5ede8900e35b1d4584930abfbf5f6fac25..85acb50a7ee2f4fe74ae26dc3dc96611cbd9d918 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);