net: atlantic: fix out of range usage of active_vlans array
authorDmitry Bogdanov <dbogdanov@marvell.com>
Fri, 14 Feb 2020 15:44:58 +0000 (18:44 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Mar 2020 15:43:47 +0000 (16:43 +0100)
commit 5a292c89a84d49b598f8978f154bdda48b1072c0 upstream.

fix static checker warning:
 drivers/net/ethernet/aquantia/atlantic/aq_filters.c:166 aq_check_approve_fvlan()
 error: passing untrusted data to 'test_bit()'

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Fixes: 7975d2aff5af: ("net: aquantia: add support of rx-vlan-filter offload")
Signed-off-by: Dmitry Bogdanov <dbogdanov@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/aquantia/atlantic/aq_filters.c

index aee827f..01af0f0 100644 (file)
@@ -158,7 +158,7 @@ aq_check_approve_fvlan(struct aq_nic_s *aq_nic,
        }
 
        if ((aq_nic->ndev->features & NETIF_F_HW_VLAN_CTAG_FILTER) &&
-           (!test_bit(be16_to_cpu(fsp->h_ext.vlan_tci),
+           (!test_bit(be16_to_cpu(fsp->h_ext.vlan_tci) & VLAN_VID_MASK,
                       aq_nic->active_vlans))) {
                netdev_err(aq_nic->ndev,
                           "ethtool: unknown vlan-id specified");