aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2013-07-20 20:00:27 -0400
committerDavid S. Miller <davem@davemloft.net>2013-07-20 20:00:27 -0400
commit8d716c7a09e0db7458dc072dd518c991c922931f (patch)
treec184c4834caa3faa589818d9e07683cfc2e934d3
parent1faabf2aab1fdaa1ace4e8c829d1b9cf7bfec2f1 (diff)
parent7671986839f9207f8d76e8ef92b2d3f263a794cc (diff)
Merge branch 'fixes-for-3.11' of git://gitorious.org/linux-can/linux-can
Marc Kleine-Budde says: ==================== here are two fixes for the v3.11 release cycle: Maximilian Schneider contributes a patch for the esd_usb2 CAN driver. It adds sanity checking to the data coming from the USB CAN adapter before using it. Alexey Khoroshilov from the Linux Driver Verification project fixes an urb leak in the error handling of the USB 8dev's usb_8dev_start() function. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/can/usb/esd_usb2.c10
-rw-r--r--drivers/net/can/usb/usb_8dev.c1
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/can/usb/esd_usb2.c b/drivers/net/can/usb/esd_usb2.c
index 6aa7b3266c80..ac6177d3befc 100644
--- a/drivers/net/can/usb/esd_usb2.c
+++ b/drivers/net/can/usb/esd_usb2.c
@@ -412,10 +412,20 @@ static void esd_usb2_read_bulk_callback(struct urb *urb)
412 412
413 switch (msg->msg.hdr.cmd) { 413 switch (msg->msg.hdr.cmd) {
414 case CMD_CAN_RX: 414 case CMD_CAN_RX:
415 if (msg->msg.rx.net >= dev->net_count) {
416 dev_err(dev->udev->dev.parent, "format error\n");
417 break;
418 }
419
415 esd_usb2_rx_can_msg(dev->nets[msg->msg.rx.net], msg); 420 esd_usb2_rx_can_msg(dev->nets[msg->msg.rx.net], msg);
416 break; 421 break;
417 422
418 case CMD_CAN_TX: 423 case CMD_CAN_TX:
424 if (msg->msg.txdone.net >= dev->net_count) {
425 dev_err(dev->udev->dev.parent, "format error\n");
426 break;
427 }
428
419 esd_usb2_tx_done_msg(dev->nets[msg->msg.txdone.net], 429 esd_usb2_tx_done_msg(dev->nets[msg->msg.txdone.net],
420 msg); 430 msg);
421 break; 431 break;
diff --git a/drivers/net/can/usb/usb_8dev.c b/drivers/net/can/usb/usb_8dev.c
index cbd388eea682..8becd3d838b5 100644
--- a/drivers/net/can/usb/usb_8dev.c
+++ b/drivers/net/can/usb/usb_8dev.c
@@ -779,6 +779,7 @@ static int usb_8dev_start(struct usb_8dev_priv *priv)
779 usb_unanchor_urb(urb); 779 usb_unanchor_urb(urb);
780 usb_free_coherent(priv->udev, RX_BUFFER_SIZE, buf, 780 usb_free_coherent(priv->udev, RX_BUFFER_SIZE, buf,
781 urb->transfer_dma); 781 urb->transfer_dma);
782 usb_free_urb(urb);
782 break; 783 break;
783 } 784 }
784 785