net: ethernet: mtk_eth_soc: fix possible NULL pointer dereference in mtk_hwlro_get_fd...
authorHangyu Hua <hbh25y@gmail.com>
Fri, 8 Sep 2023 06:19:50 +0000 (14:19 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 Sep 2023 07:26:11 +0000 (08:26 +0100)
rule_locs is allocated in ethtool_get_rxnfc and the size is determined by
rule_cnt from user space. So rule_cnt needs to be check before using
rule_locs to avoid NULL pointer dereference.

Fixes: 7aab747e5563 ("net: ethernet: mediatek: add ethtool functions to configure RX flows of HW LRO")
Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mediatek/mtk_eth_soc.c

index 6ad42e3..2372ce8 100644 (file)
@@ -2994,6 +2994,9 @@ static int mtk_hwlro_get_fdir_all(struct net_device *dev,
        int i;
 
        for (i = 0; i < MTK_MAX_LRO_IP_CNT; i++) {
+               if (cnt == cmd->rule_cnt)
+                       return -EMSGSIZE;
+
                if (mac->hwlro_ip[i]) {
                        rule_locs[cnt] = i;
                        cnt++;