From: Jo-Philipp Wich Date: Fri, 23 Dec 2016 18:15:14 +0000 (+0100) Subject: generic: ar8216: fix invalid bounds check imported from ChromeOS (FS#347) X-Git-Tag: v17.01.0-rc1~402 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=29cc927ef5a6d2f1e8de0d3d9fc67877aa4b6af7;p=oweals%2Fopenwrt.git generic: ar8216: fix invalid bounds check imported from ChromeOS (FS#347) 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 --- diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c index 746d8e6c3d..27b062bc47 100644 --- a/target/linux/generic/files/drivers/net/phy/ar8216.c +++ b/target/linux/generic/files/drivers/net/phy/ar8216.c @@ -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;