aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2016-12-23 19:15:14 +0100
committerJo-Philipp Wich <jo@mein.io>2016-12-23 19:24:14 +0100
commit29cc927ef5a6d2f1e8de0d3d9fc67877aa4b6af7 (patch)
tree8fa6115545d0210343049a939a2375210a812607
parent08db3e1b859f60cd4668d67f45629e757e8cbfef (diff)
downloadupstream-29cc927ef5a6d2f1e8de0d3d9fc67877aa4b6af7.tar.gz
upstream-29cc927ef5a6d2f1e8de0d3d9fc67877aa4b6af7.tar.bz2
upstream-29cc927ef5a6d2f1e8de0d3d9fc67877aa4b6af7.zip
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 <jo@mein.io>
-rw-r--r--target/linux/generic/files/drivers/net/phy/ar8216.c2
1 files changed, 1 insertions, 1 deletions
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;