]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
net: mvpp2: prevent buffer overflow in mvpp22_rss_ctx()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 6 May 2020 10:16:22 +0000 (13:16 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 6 May 2020 21:15:46 +0000 (14:15 -0700)
The "rss_context" variable comes from the user via  ethtool_get_rxfh().
It can be any u32 value except zero.  Eventually it gets passed to
mvpp22_rss_ctx() and if it is over MVPP22_N_RSS_TABLES (8) then it
results in an array overflow.

Fixes: 895586d5dc32 ("net: mvpp2: cls: Use RSS contexts to handle RSS tables")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c

index 1fa60e985b43aeca4c2d0d41d79d3751b3b5b407..2b5dad2ec650c0874ada85d02c1abfce20cae784 100644 (file)
@@ -4329,6 +4329,8 @@ static int mvpp2_ethtool_get_rxfh_context(struct net_device *dev, u32 *indir,
 
        if (!mvpp22_rss_is_supported())
                return -EOPNOTSUPP;
+       if (rss_context >= MVPP22_N_RSS_TABLES)
+               return -EINVAL;
 
        if (hfunc)
                *hfunc = ETH_RSS_HASH_CRC32;