Pārlūkot izejas kodu

can: usb_8dev: Fix memory leak in usb_8dev_start_xmit

Fixed a memory leak when an error occurred in the transmit function. In the
error handling the urb wasn't freed before returning. There was also a call to
the usb_unanchor_urb() function but the urb wasn't anchored.

Signed-off-by: Bjorn Van Tilt <bjorn.vantilt@gmail.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Bjorn Van Tilt 11 gadi atpakaļ
vecāks
revīzija
636d0375e7
1 mainītis faili ar 1 papildinājumiem un 1 dzēšanām
  1. 1 1
      drivers/net/can/usb/usb_8dev.c

+ 1 - 1
drivers/net/can/usb/usb_8dev.c

@@ -697,8 +697,8 @@ static netdev_tx_t usb_8dev_start_xmit(struct sk_buff *skb,
 	return NETDEV_TX_OK;
 	return NETDEV_TX_OK;
 
 
 nofreecontext:
 nofreecontext:
-	usb_unanchor_urb(urb);
 	usb_free_coherent(priv->udev, size, buf, urb->transfer_dma);
 	usb_free_coherent(priv->udev, size, buf, urb->transfer_dma);
+	usb_free_urb(urb);
 
 
 	netdev_warn(netdev, "couldn't find free context");
 	netdev_warn(netdev, "couldn't find free context");