]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Sep 2023 08:47:03 +0000 (10:47 +0200)
[ Upstream commit e4c79810755f66c9a933ca810da2724133b1165a ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/mediatek/mtk_eth_soc.c

index fb48efa70797934dbc96dba5045cbf34c3383e6f..ff7c267df6e40f0c474138dab3d7f9d943316ca2 100644 (file)
@@ -1625,6 +1625,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++;