Commit 643e2686 authored by Liu Jian's avatar Liu Jian
Browse files

net: hisilicon: Fix potential use-after-free in hisi_femac_rx()

stable inclusion
from stable-v4.19.269
commit aceec8ab752428d8e151321479e82cc1a40fee2e
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAYRFL
CVE: CVE-2022-48962

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



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

[ Upstream commit 46401770 ]

The skb is delivered to napi_gro_receive() which may free it, after
calling this, dereferencing skb may trigger use-after-free.

Fixes: 542ae60a ("net: hisilicon: Add Fast Ethernet MAC driver")
Signed-off-by: default avatarLiu Jian <liujian56@huawei.com>
Link: https://lore.kernel.org/r/20221203094240.1240211-1-liujian56@huawei.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarLiu Jian <liujian56@huawei.com>
parent c6de47cf
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -295,7 +295,7 @@ static int hisi_femac_rx(struct net_device *dev, int limit)
		skb->protocol = eth_type_trans(skb, dev);
		napi_gro_receive(&priv->napi, skb);
		dev->stats.rx_packets++;
		dev->stats.rx_bytes += skb->len;
		dev->stats.rx_bytes += len;
next:
		pos = (pos + 1) % rxq->num;
		if (rx_pkts_num >= limit)