diff options
author | Ido Schimmel <idosch@nvidia.com> | 2021-11-24 12:11:22 +0200 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2021-11-24 17:23:52 -0800 |
commit | 5a45ab3f248b3489af8b8440eb56b2ebaae59a6c (patch) | |
tree | 988924d2992a6e646f89c8c6efdbdfc53f75eef6 | |
parent | 80690a85f54f8588740ba5defa9754df8fab53f3 (diff) |
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: 520fbdf7fb19 ("net/bridge: replace simple_strtoul to kstrtol")
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Acked-by: Nikolay Aleksandrov <nikolay@nvidia.com>
Link: https://lore.kernel.org/r/20211124101122.3321496-1-idosch@idosch.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r-- | net/bridge/br_sysfs_br.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c index 11c490694296..159590d5c2af 100644 --- a/net/bridge/br_sysfs_br.c +++ b/net/bridge/br_sysfs_br.c @@ -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)) return -EPERM; - err = kstrtoul(buf, 10, &val); + err = kstrtoul(buf, 0, &val); if (err != 0) return err; |