can: usb_8dev: fix urb leak on failure path in usb_8dev_start()
authorAlexey Khoroshilov <khoroshilov@ispras.ru>
Wed, 17 Jul 2013 21:20:33 +0000 (01:20 +0400)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Fri, 19 Jul 2013 12:55:14 +0000 (14:55 +0200)
If usb_8dev_start() fails to submit urb,
it unanchors the urb but forgets to free it.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/usb/usb_8dev.c

index cbd388e..8becd3d 100644 (file)
@@ -779,6 +779,7 @@ static int usb_8dev_start(struct usb_8dev_priv *priv)
                        usb_unanchor_urb(urb);
                        usb_free_coherent(priv->udev, RX_BUFFER_SIZE, buf,
                                          urb->transfer_dma);
+                       usb_free_urb(urb);
                        break;
                }