32 lines
1.1 KiB
Diff
32 lines
1.1 KiB
Diff
|
From a3360b3543b9fb833ba691019e396e72293a313f Mon Sep 17 00:00:00 2001
|
||
|
From: John Crispin <john@phrozen.org>
|
||
|
Date: Thu, 10 Aug 2017 16:31:45 +0200
|
||
|
Subject: [PATCH 55/57] net: ethernet: mediatek: avoid potential invalid memory
|
||
|
access
|
||
|
|
||
|
Potential dangerous invalid memory might be accessed if invalid mac value
|
||
|
reflected from the forward port field in rxd4 caused by possible potential
|
||
|
hardware defects. So added a simple sanity checker to avoid the kind of
|
||
|
situation happening.
|
||
|
|
||
|
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
|
||
|
Acked-by: John Crispin <john@phrozen.org>
|
||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||
|
---
|
||
|
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 4 ++++
|
||
|
1 file changed, 4 insertions(+)
|
||
|
|
||
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||
|
@@ -964,6 +964,10 @@ static int mtk_poll_rx(struct napi_struc
|
||
|
mac--;
|
||
|
}
|
||
|
|
||
|
+ if (unlikely(mac < 0 || mac >= MTK_MAC_COUNT ||
|
||
|
+ !eth->netdev[mac]))
|
||
|
+ goto release_desc;
|
||
|
+
|
||
|
netdev = eth->netdev[mac];
|
||
|
|
||
|
if (unlikely(test_bit(MTK_RESETTING, ð->state)))
|