Jiri Slaby ef7db2
From: Jeff Layton <jlayton@kernel.org>
Jiri Slaby ef7db2
Date: Tue, 17 Jan 2023 14:38:30 -0500
Jiri Slaby ef7db2
Subject: [PATCH] nfsd: zero out pointers after putting nfsd_files on COPY
Jiri Slaby ef7db2
 setup error
Jiri Slaby ef7db2
References: bsc#1012628
Jiri Slaby ef7db2
Patch-mainline: 6.2.3
Jiri Slaby ef7db2
Git-commit: 1f0001d43d0c0ac2a19a34a914f6595ad97cbc1d
Jiri Slaby ef7db2
Jiri Slaby ef7db2
[ Upstream commit 1f0001d43d0c0ac2a19a34a914f6595ad97cbc1d ]
Jiri Slaby ef7db2
Jiri Slaby ef7db2
At first, I thought this might be a source of nfsd_file overputs, but
Jiri Slaby ef7db2
the current callers seem to avoid an extra put when nfsd4_verify_copy
Jiri Slaby ef7db2
returns an error.
Jiri Slaby ef7db2
Jiri Slaby ef7db2
Still, it's "bad form" to leave the pointers filled out when we don't
Jiri Slaby ef7db2
have a reference to them anymore, and that might lead to bugs later.
Jiri Slaby ef7db2
Zero them out as a defensive coding measure.
Jiri Slaby ef7db2
Jiri Slaby ef7db2
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Jiri Slaby ef7db2
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Jiri Slaby ef7db2
Signed-off-by: Sasha Levin <sashal@kernel.org>
Jiri Slaby ef7db2
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Jiri Slaby ef7db2
---
Jiri Slaby ef7db2
 fs/nfsd/nfs4proc.c | 2 ++
Jiri Slaby ef7db2
 1 file changed, 2 insertions(+)
Jiri Slaby ef7db2
Jiri Slaby ef7db2
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
Jiri Slaby ef7db2
index 92674077..e02ff76f 100644
Jiri Slaby ef7db2
--- a/fs/nfsd/nfs4proc.c
Jiri Slaby ef7db2
+++ b/fs/nfsd/nfs4proc.c
Jiri Slaby ef7db2
@@ -1214,8 +1214,10 @@ nfsd4_verify_copy(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
Jiri Slaby ef7db2
 	return status;
Jiri Slaby ef7db2
 out_put_dst:
Jiri Slaby ef7db2
 	nfsd_file_put(*dst);
Jiri Slaby ef7db2
+	*dst = NULL;
Jiri Slaby ef7db2
 out_put_src:
Jiri Slaby ef7db2
 	nfsd_file_put(*src);
Jiri Slaby ef7db2
+	*src = NULL;
Jiri Slaby ef7db2
 	goto out;
Jiri Slaby ef7db2
 }
Jiri Slaby ef7db2
 
Jiri Slaby ef7db2
-- 
Jiri Slaby ef7db2
2.35.3
Jiri Slaby ef7db2