summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorDai Ngo <dai.ngo@oracle.com>2020-10-29 22:07:16 +0300
committerJ. Bruce Fields <bfields@redhat.com>2020-11-06 01:25:14 +0300
commit49a361327332c9221438397059067f9b205f690d (patch)
treeaa1cba58354156ca0ab10edaba94d292f35ebd53 /fs
parent36e1e5ba90fb3fba6888fae26e4dfc28bf70aaf1 (diff)
downloadlinux-49a361327332c9221438397059067f9b205f690d.tar.xz
NFSD: fix missing refcount in nfsd4_copy by nfsd4_do_async_copy
Need to initialize nfsd4_copy's refcount to 1 to avoid use-after-free warning when nfs4_put_copy is called from nfsd4_cb_offload_release. Fixes: ce0887ac96d3 ("NFSD add nfs4 inter ssc to nfsd4_copy") Signed-off-by: Dai Ngo <dai.ngo@oracle.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/nfsd/nfs4proc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index 9c43cad7e408..e83b21778816 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -1486,6 +1486,7 @@ do_callback:
cb_copy = kzalloc(sizeof(struct nfsd4_copy), GFP_KERNEL);
if (!cb_copy)
goto out;
+ refcount_set(&cb_copy->refcount, 1);
memcpy(&cb_copy->cp_res, &copy->cp_res, sizeof(copy->cp_res));
cb_copy->cp_clp = copy->cp_clp;
cb_copy->nfserr = copy->nfserr;