generic: ar8216: fix invalid bounds check imported from ChromeOS (FS#347)
authorJo-Philipp Wich <jo@mein.io>
Fri, 23 Dec 2016 18:15:14 +0000 (19:15 +0100)
committerJo-Philipp Wich <jo@mein.io>
Fri, 23 Dec 2016 18:24:14 +0000 (19:24 +0100)
The priv->vlan_id member is of size AR8X16_MAX_VLANS, not AR8X16_MAX_PORTS,
so check for the proper maximum value in order to avoid capping valid VLAN IDs
to 7 (AR8X16_MAX_PORTS - 1).

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
target/linux/generic/files/drivers/net/phy/ar8216.c

index 746d8e6c3dcc312b03f851901b0c4d9ec8edfa96..27b062bc478bc1429ede386cb7ecb2b8a037bb03 100644 (file)
@@ -975,7 +975,7 @@ ar8xxx_sw_set_vid(struct switch_dev *dev, const struct switch_attr *attr,
 {
        struct ar8xxx_priv *priv = swdev_to_ar8xxx(dev);
 
-       if (val->port_vlan >= AR8X16_MAX_PORTS)
+       if (val->port_vlan >= AR8X16_MAX_VLANS)
                return -EINVAL;
 
        priv->vlan_id[val->port_vlan] = val->value.i;