NFSD: move from strlcpy with unused retval to strscpy
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Thu, 18 Aug 2022 21:01:14 +0000 (23:01 +0200)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 26 Sep 2022 18:02:20 +0000 (14:02 -0400)
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@sang-engineering.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4idmap.c
fs/nfsd/nfs4proc.c
fs/nfsd/nfssvc.c

index f92161ce1f97dd4412dd59813a5f769dae1b1d54..e70a1a2999b7b4f2943478259c144f14beb0b1b0 100644 (file)
@@ -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);
index a72ab97f77efe2b8fcbab183667c77da26909274..0437210b9898d434613504d17574bb4faecd34f5 100644 (file)
@@ -1343,7 +1343,7 @@ try_again:
                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);
index 4bb5baa17040fcaae15e80a9e87e977e48986fa7..bfbd9f672f59e289e1c2acb07a1061843d01de86 100644 (file)
@@ -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);