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: <45B86549-7FA6-4E09-9739-4756FBD830BC@oracle.com>
Date:   Thu, 18 Aug 2022 21:08:48 +0000
From:   Chuck Lever III <chuck.lever@...cle.com>
To:     Wolfram Sang <wsa+renesas@...g-engineering.com>
CC:     Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Jeff Layton <jlayton@...nel.org>,
        Linux NFS Mailing List <linux-nfs@...r.kernel.org>
Subject: Re: [PATCH 05/14] NFSD: move from strlcpy with unused retval to
 strscpy



> On Aug 18, 2022, at 5:01 PM, Wolfram Sang <wsa+renesas@...g-engineering.com> wrote:
> 
> Follow the advice of the below link and prefer 'strscpy' in this
> subsystem. Conversion is 1:1 because the return value is not used.
> Generated by a coccinelle script.
> 
> Link: https://lore.kernel.org/r/CAHk-=wgfRnXz0W3D37d01q3JFkr_i_uTL=V6A6G1oUZcprmknw@mail.gmail.com/
> Signed-off-by: Wolfram Sang <wsa+renesas@...g-engineering.com>

Makes sense.

I think I would like to carry 05 and 07 in the NFSD tree so they
can get some exposure to our test workloads before they are merged.
Is that OK with you?


> ---
> fs/nfsd/nfs4idmap.c | 8 ++++----
> fs/nfsd/nfs4proc.c  | 2 +-
> fs/nfsd/nfssvc.c    | 2 +-
> 3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/fs/nfsd/nfs4idmap.c b/fs/nfsd/nfs4idmap.c
> index f92161ce1f97..e70a1a2999b7 100644
> --- a/fs/nfsd/nfs4idmap.c
> +++ b/fs/nfsd/nfs4idmap.c
> @@ -82,8 +82,8 @@ ent_init(struct cache_head *cnew, struct cache_head *citm)
> 	new->id = itm->id;
> 	new->type = itm->type;
> 
> -	strlcpy(new->name, itm->name, sizeof(new->name));
> -	strlcpy(new->authname, itm->authname, sizeof(new->authname));
> +	strscpy(new->name, itm->name, sizeof(new->name));
> +	strscpy(new->authname, itm->authname, sizeof(new->authname));
> }
> 
> static void
> @@ -548,7 +548,7 @@ idmap_name_to_id(struct svc_rqst *rqstp, int type, const char *name, u32 namelen
> 		return nfserr_badowner;
> 	memcpy(key.name, name, namelen);
> 	key.name[namelen] = '\0';
> -	strlcpy(key.authname, rqst_authname(rqstp), sizeof(key.authname));
> +	strscpy(key.authname, rqst_authname(rqstp), sizeof(key.authname));
> 	ret = idmap_lookup(rqstp, nametoid_lookup, &key, nn->nametoid_cache, &item);
> 	if (ret == -ENOENT)
> 		return nfserr_badowner;
> @@ -584,7 +584,7 @@ static __be32 idmap_id_to_name(struct xdr_stream *xdr,
> 	int ret;
> 	struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id);
> 
> -	strlcpy(key.authname, rqst_authname(rqstp), sizeof(key.authname));
> +	strscpy(key.authname, rqst_authname(rqstp), sizeof(key.authname));
> 	ret = idmap_lookup(rqstp, idtoname_lookup, &key, nn->idtoname_cache, &item);
> 	if (ret == -ENOENT)
> 		return encode_ascii_id(xdr, id);
> diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
> index a72ab97f77ef..0437210b9898 100644
> --- a/fs/nfsd/nfs4proc.c
> +++ b/fs/nfsd/nfs4proc.c
> @@ -1343,7 +1343,7 @@ static __be32 nfsd4_ssc_setup_dul(struct nfsd_net *nn, char *ipaddr,
> 		return 0;
> 	}
> 	if (work) {
> -		strlcpy(work->nsui_ipaddr, ipaddr, sizeof(work->nsui_ipaddr) - 1);
> +		strscpy(work->nsui_ipaddr, ipaddr, sizeof(work->nsui_ipaddr) - 1);
> 		refcount_set(&work->nsui_refcnt, 2);
> 		work->nsui_busy = true;
> 		list_add_tail(&work->nsui_list, &nn->nfsd_ssc_mount_list);
> diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c
> index 4bb5baa17040..bfbd9f672f59 100644
> --- a/fs/nfsd/nfssvc.c
> +++ b/fs/nfsd/nfssvc.c
> @@ -799,7 +799,7 @@ nfsd_svc(int nrservs, struct net *net, const struct cred *cred)
> 	if (nrservs == 0 && nn->nfsd_serv == NULL)
> 		goto out;
> 
> -	strlcpy(nn->nfsd_name, utsname()->nodename,
> +	strscpy(nn->nfsd_name, utsname()->nodename,
> 		sizeof(nn->nfsd_name));
> 
> 	error = nfsd_create_serv(net);
> -- 
> 2.35.1
> 

--
Chuck Lever



Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ