public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] nfsd: Fix a memory leak in an error handling path
@ 2022-08-26 10:24 Christophe JAILLET
  2022-08-26 10:41 ` Jeff Layton
  2022-08-26 11:08 ` Dan Carpenter
  0 siblings, 2 replies; 6+ messages in thread
From: Christophe JAILLET @ 2022-08-26 10:24 UTC (permalink / raw)
  To: Chuck Lever, Jeff Layton, J. Bruce Fields, Scott Mayhew
  Cc: linux-kernel, kernel-janitors, Christophe JAILLET, linux-nfs

If this memdup_user() call fails, the memory allocated in a previous call
a few lines above should be freed. Otherwise it leaks.

Fixes: 6ee95d1c8991 ("nfsd: add support for upcall version 2")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
Speculative, untested.
---
 fs/nfsd/nfs4recover.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index b29d27eaa8a6..248ff9f4141c 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -815,8 +815,10 @@ __cld_pipe_inprogress_downcall(const struct cld_msg_v2 __user *cmsg,
 				princhash.data = memdup_user(
 						&ci->cc_princhash.cp_data,
 						princhashlen);
-				if (IS_ERR_OR_NULL(princhash.data))
+				if (IS_ERR_OR_NULL(princhash.data)) {
+					kfree(name.data);
 					return -EFAULT;
+				}
 				princhash.len = princhashlen;
 			} else
 				princhash.len = 0;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-08-31  5:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-26 10:24 [PATCH] nfsd: Fix a memory leak in an error handling path Christophe JAILLET
2022-08-26 10:41 ` Jeff Layton
2022-08-26 11:08 ` Dan Carpenter
2022-08-30 21:11   ` Chuck Lever III
2022-08-31  5:06     ` Christophe JAILLET
2022-08-31  5:44     ` Dan Carpenter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox