Commit f69caa59 authored by Hangyu Hua's avatar Hangyu Hua Committed by Zheng Zengkai
Browse files

can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path

stable inclusion
from stable-v5.10.110
commit 0801a51d79389282c1271e623613b2e1886e071e
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I51YBO
CVE: CVE-2022-28389

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0801a51d79389282c1271e623613b2e1886e071e

--------------------------------

commit 04c9b00b upstream.

There is no need to call dev_kfree_skb() when usb_submit_urb() fails
because can_put_echo_skb() deletes original skb and
can_free_echo_skb() deletes the cloned skb.

Fixes: 51f3baad ("can: mcba_usb: Add support for Microchip CAN BUS Analyzer")
Link: https://lore.kernel.org/all/20220311080208.45047-1-hbh25y@gmail.com


Signed-off-by: default avatarHangyu Hua <hbh25y@gmail.com>
Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
Reviewed-by: default avatarWei Yongjun <weiyongjun1@huawei.com>
Reviewed-by: default avatarXiu Jianfeng <xiujianfeng@huawei.com>
parent 622eab0a
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -368,7 +368,6 @@ static netdev_tx_t mcba_usb_start_xmit(struct sk_buff *skb,
xmit_failed:
	can_free_echo_skb(priv->netdev, ctx->ndx);
	mcba_usb_free_ctx(ctx);
	dev_kfree_skb(skb);
	stats->tx_dropped++;

	return NETDEV_TX_OK;