lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-id: <174839190520.608730.15461813542926388395@noble.neil.brown.name>
Date: Wed, 28 May 2025 10:25:05 +1000
From: NeilBrown <neil@...wn.name>
To: "Su Hui" <suhui@...china.com>
Cc: chuck.lever@...cle.com, jlayton@...nel.org, okorniev@...hat.com,
 Dai.Ngo@...cle.com, tom@...pey.com, "Su Hui" <suhui@...china.com>,
 linux-nfs@...r.kernel.org, linux-kernel@...r.kernel.org,
 kernel-janitors@...r.kernel.org
Subject:
 Re: [PATCH] nfsd: Replace simple_strtoul with kstrtoint in expkey_parse

On Tue, 27 May 2025, Su Hui wrote:
> kstrtoint() is better because simple_strtoul() ignores overflow and the
> type of 'fsidtype' is 'int' rather than 'unsigned long'.

Thanks for the patch.

Reviewed-by: NeilBrown <neil@...wn.name>

The valid values for fsidtype are actually 0-7 so it might be nice to
change the type to u8 everywhere and make this kstrtou8() but that isn't
really needed and shouldn't stop this patch landing.

Thanks,
NeilBrown


> 
> Signed-off-by: Su Hui <suhui@...china.com>
> ---
>  fs/nfsd/export.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
> index 0363720280d4..1bc9bc20cac3 100644
> --- a/fs/nfsd/export.c
> +++ b/fs/nfsd/export.c
> @@ -83,7 +83,6 @@ static int expkey_parse(struct cache_detail *cd, char *mesg, int mlen)
>  	struct auth_domain *dom = NULL;
>  	int err;
>  	int fsidtype;
> -	char *ep;
>  	struct svc_expkey key;
>  	struct svc_expkey *ek = NULL;
>  
> @@ -109,8 +108,7 @@ static int expkey_parse(struct cache_detail *cd, char *mesg, int mlen)
>  	err = -EINVAL;
>  	if (qword_get(&mesg, buf, PAGE_SIZE) <= 0)
>  		goto out;
> -	fsidtype = simple_strtoul(buf, &ep, 10);
> -	if (*ep)
> +	if (kstrtoint(buf, 10, &fsidtype))
>  		goto out;
>  	dprintk("found fsidtype %d\n", fsidtype);
>  	if (key_len(fsidtype)==0) /* invalid type */
> -- 
> 2.30.2
> 
> 


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ