Re: [PATCH -next v2] sh: intc: replace simple_strtoul to kstrtoul

John Paul Adrian Glaubitz <[email protected]>
Newsgroups gmane.linux.ports.sh.devel
Message-ID <ed56d2d52dce9c7bd1ea2b0a6504f2ddb50235b4.camel@physik.fu-berlin.de>
Hello Hongo,

thanks for your patch!

On Sat, 2024-08-31 at 17:43 +0800, Hongbo Li wrote:
> The function simple_strtoul performs no error checking
> in scenarios where the input value overflows the intended
> output variable.
> 
> We can replace the use of the simple_strtoul with the safer
> alternatives kstrtoul. For fail case, we also print the extra
> message.
> 
> Signed-off-by: Hongbo Li <[email protected]>
> 
> ---
> v2:
>   - Pass the error code returned by kstrtoul() suggested by Geert.
> 
> v1: https://lore.kernel.org/all/[email protected]/T/
> ---
>  drivers/sh/intc/userimask.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/sh/intc/userimask.c b/drivers/sh/intc/userimask.c
> index abe9091827cd..5d7801b76715 100644
> --- a/drivers/sh/intc/userimask.c
> +++ b/drivers/sh/intc/userimask.c
> @@ -32,8 +32,10 @@ store_intc_userimask(struct device *dev,
>  		     const char *buf, size_t count)
>  {
>  	unsigned long level;
> +	int ret = kstrtoul(buf, 10, &level);

Could you separate declaration and assignment here to make it more consistent
with the rest of the code?

> -	level = simple_strtoul(buf, NULL, 10);
> +	if (ret != 0)
> +		return ret;
>  
>  	/*
>  	 * Minimal acceptable IRQ levels are in the 2 - 16 range, but

Thanks,
Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.