diff options
author | Jakub Kicinski <kuba@kernel.org> | 2022-01-05 17:04:32 -0800 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2022-01-05 17:04:32 -0800 |
commit | 502a2ce9cdf4225983a07c8d99ea2afd53f48837 (patch) | |
tree | eda7cfdaac301a262f33632edd4a3f44d8e6762c | |
parent | 75acfdb6fd922598a408a0d864486aeb167c1a97 (diff) | |
parent | 5f33a09e769a9da0482f20a6770a342842443776 (diff) | |
download | mac80211-502a2ce9cdf4225983a07c8d99ea2afd53f48837.tar.gz |
Merge tag 'linux-can-fixes-for-5.16-20220105' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can
Marc Kleine-Budde says:
====================
pull-request: can 2022-01-05
It consists of 2 patches, both by me. The first one fixes the use of
an uninitialized variable in the gs_usb driver the other one a
skb_over_panic in the ISOTP stack in case of reception of too large
ISOTP messages.
* tag 'linux-can-fixes-for-5.16-20220105' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can:
can: isotp: convert struct tpcon::{idx,len} to unsigned int
can: gs_usb: fix use of uninitialized variable, detach device on reception of invalid USB data
====================
Link: https://lore.kernel.org/r/20220105205443.1274709-1-mkl@pengutronix.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r-- | drivers/net/can/usb/gs_usb.c | 3 | ||||
-rw-r--r-- | net/can/isotp.c | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/can/usb/gs_usb.c b/drivers/net/can/usb/gs_usb.c index 1b400de00f517..d7ce2c5956f4c 100644 --- a/drivers/net/can/usb/gs_usb.c +++ b/drivers/net/can/usb/gs_usb.c @@ -321,7 +321,7 @@ static void gs_usb_receive_bulk_callback(struct urb *urb) /* device reports out of range channel id */ if (hf->channel >= GS_MAX_INTF) - goto resubmit_urb; + goto device_detach; dev = usbcan->canch[hf->channel]; @@ -406,6 +406,7 @@ static void gs_usb_receive_bulk_callback(struct urb *urb) /* USB failure take down all interfaces */ if (rc == -ENODEV) { + device_detach: for (rc = 0; rc < GS_MAX_INTF; rc++) { if (usbcan->canch[rc]) netif_device_detach(usbcan->canch[rc]->netdev); diff --git a/net/can/isotp.c b/net/can/isotp.c index df6968b28bf41..02cbcb2ecf0db 100644 --- a/net/can/isotp.c +++ b/net/can/isotp.c @@ -119,8 +119,8 @@ enum { }; struct tpcon { - int idx; - int len; + unsigned int idx; + unsigned int len; u32 state; u8 bs; u8 sn; |