Re: [PATCH 05/14] NFSD: move from strlcpy with unused retval to strscpy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On Aug 18, 2022, at 5:01 PM, Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx/
> Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>

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







[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux