Commit 5a45ab3f authored by Ido Schimmel's avatar Ido Schimmel Committed by Jakub Kicinski

net: bridge: Allow base 16 inputs in sysfs

Cited commit converted simple_strtoul() to kstrtoul() as suggested by
the former's documentation. However, it also forced all the inputs to be
decimal resulting in user space breakage.

Fix by setting the base to '0' so that the base is automatically
detected.

Before:

 # ip link add name br0 type bridge vlan_filtering 1
 # echo "0x88a8" > /sys/class/net/br0/bridge/vlan_protocol
 bash: echo: write error: Invalid argument

After:

 # ip link add name br0 type bridge vlan_filtering 1
 # echo "0x88a8" > /sys/class/net/br0/bridge/vlan_protocol
 # echo $?
 0

Fixes: 520fbdf7 ("net/bridge: replace simple_strtoul to kstrtol")
Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
Acked-by: default avatarNikolay Aleksandrov <nikolay@nvidia.com>
Link: https://lore.kernel.org/r/20211124101122.3321496-1-idosch@idosch.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 80690a85
...@@ -41,7 +41,7 @@ static ssize_t store_bridge_parm(struct device *d, ...@@ -41,7 +41,7 @@ static ssize_t store_bridge_parm(struct device *d,
if (!ns_capable(dev_net(br->dev)->user_ns, CAP_NET_ADMIN)) if (!ns_capable(dev_net(br->dev)->user_ns, CAP_NET_ADMIN))
return -EPERM; return -EPERM;
err = kstrtoul(buf, 10, &val); err = kstrtoul(buf, 0, &val);
if (err != 0) if (err != 0)
return err; return err;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment