Re: [PATCH] net/bridge: replace simple_strtoul to kstrtol

From: Ido Schimmel
Date: Mon Nov 22 2021 - 05:04:43 EST


On Thu, Nov 18, 2021 at 06:06:42PM -0800, Bernard Zhao wrote:
> simple_strtoull is obsolete, use kstrtol instead.
>
> Signed-off-by: Bernard Zhao <bernard@xxxxxxxx>
> ---
> net/bridge/br_sysfs_br.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c
> index d9a89ddd0331..11c490694296 100644
> --- a/net/bridge/br_sysfs_br.c
> +++ b/net/bridge/br_sysfs_br.c
> @@ -36,15 +36,14 @@ static ssize_t store_bridge_parm(struct device *d,
> struct net_bridge *br = to_bridge(d);
> struct netlink_ext_ack extack = {0};
> unsigned long val;
> - char *endp;
> int err;
>
> if (!ns_capable(dev_net(br->dev)->user_ns, CAP_NET_ADMIN))
> return -EPERM;
>
> - val = simple_strtoul(buf, &endp, 0);
> - if (endp == buf)
> - return -EINVAL;
> + err = kstrtoul(buf, 10, &val);

Base 16 is valid.

Before this patch:

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

After this patch:

# 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

> + if (err != 0)
> + return err;
>
> if (!rtnl_trylock())
> return restart_syscall();
> --
> 2.33.1
>