]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
NFSv4.2: fix copy stateid copying for the async copy
authorOlga Kornievskaia <kolga@netapp.com>
Tue, 30 Mar 2021 19:03:59 +0000 (15:03 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Thu, 1 Apr 2021 13:36:31 +0000 (09:36 -0400)
This patch fixes Dan Carpenter's report that the static checker
found a problem where memcpy() was copying into too small of a buffer.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Fixes: e0639dc5805a ("NFSD introduce async copy feature")
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Dai Ngo <dai.ngo@oracle.com>
fs/nfsd/nfs4proc.c

index edcb380fbf126d53db8283a8aa543151432f8baa..daf43b980d4b90a999534f0f50a4e3a055a5d538 100644 (file)
@@ -1541,8 +1541,8 @@ nfsd4_copy(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
                if (!nfs4_init_copy_state(nn, copy))
                        goto out_err;
                refcount_set(&async_copy->refcount, 1);
-               memcpy(&copy->cp_res.cb_stateid, &copy->cp_stateid,
-                       sizeof(copy->cp_stateid));
+               memcpy(&copy->cp_res.cb_stateid, &copy->cp_stateid.stid,
+                       sizeof(copy->cp_res.cb_stateid));
                dup_copy_fields(copy, async_copy);
                async_copy->copy_task = kthread_create(nfsd4_do_async_copy,
                                async_copy, "%s", "copy thread");