diff options
author | Jakub Kicinski <kuba@kernel.org> | 2022-01-06 02:04:32 +0100 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2022-01-06 02:04:32 +0100 |
commit | 502a2ce9cdf4225983a07c8d99ea2afd53f48837 (patch) | |
tree | eda7cfdaac301a262f33632edd4a3f44d8e6762c /drivers | |
parent | Merge tag 'net-5.16-final' of git://git.kernel.org/pub/scm/linux/kernel/git/n... (diff) | |
parent | can: isotp: convert struct tpcon::{idx,len} to unsigned int (diff) | |
download | linux-502a2ce9cdf4225983a07c8d99ea2afd53f48837.tar.xz linux-502a2ce9cdf4225983a07c8d99ea2afd53f48837.zip |
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/can/usb/gs_usb.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/can/usb/gs_usb.c b/drivers/net/can/usb/gs_usb.c index 1b400de00f51..d7ce2c5956f4 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); |