linux/drivers/net/can
Oliver Hartkopp ae64438be1 can: dev: fix skb drop check
In commit a6d190f8c7 ("can: skb: drop tx skb if in listen only
mode") the priv->ctrlmode element is read even on virtual CAN
interfaces that do not create the struct can_priv at startup. This
out-of-bounds read may lead to CAN frame drops for virtual CAN
interfaces like vcan and vxcan.

This patch mainly reverts the original commit and adds a new helper
for CAN interface drivers that provide the required information in
struct can_priv.

Fixes: a6d190f8c7 ("can: skb: drop tx skb if in listen only mode")
Reported-by: Dariusz Stojaczyk <Dariusz.Stojaczyk@opensynergy.com>
Cc: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
Cc: Max Staudt <max@enpas.org>
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Acked-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
Link: https://lore.kernel.org/all/20221102095431.36831-1-socketcan@hartkopp.net
Cc: stable@vger.kernel.org # 6.0.x
[mkl: patch pch_can, too]
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2022-11-07 14:00:27 +01:00
..
c_can can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
cc770 can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
ctucanfd can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
dev can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
flexcan can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
ifi_canfd can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
m_can can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
mscan can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
peak_canfd can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
rcar can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
sja1000 can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
slcan can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
softing can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
spi can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
usb can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
at91_can.c can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
can327.c can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
grcan.c can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
janz-ican3.c can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
Kconfig can: slcan: use CAN network device driver API 2022-07-03 11:34:28 +02:00
kvaser_pciefd.c can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
Makefile can: slcan: move driver into separate sub directory 2022-07-03 11:34:44 +02:00
pch_can.c can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
sun4i_can.c can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
ti_hecc.c can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00
vcan.c can: dev: add CAN XL support to virtual CAN 2022-09-15 09:08:09 +02:00
vxcan.c can: dev: add CAN XL support to virtual CAN 2022-09-15 09:08:09 +02:00
xilinx_can.c can: dev: fix skb drop check 2022-11-07 14:00:27 +01:00