Re: memory leak in nfs_get_client

From: Benjamin Coddington
Date: Tue Jul 02 2019 - 14:29:52 EST


On 2 Jul 2019, at 12:11, Eric Biggers wrote:

On Tue, Jul 02, 2019 at 07:23:32AM -0400, Benjamin Coddington wrote:
On 2 Jul 2019, at 2:31, Eric Biggers wrote:

On Tue, Jun 11, 2019 at 12:23:12PM -0400, Benjamin Coddington wrote:
Ugh.. Now that you can cancel the wait, you have to also handle if
"new" was
allocated. I think this needs:

diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index d7e4f0848e28..4d90f5bf0b0a 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -406,10 +406,10 @@ struct nfs_client *nfs_get_client(const struct
nfs_client_initdata *cl_init)
clp = nfs_match_client(cl_init);
if (clp) {
spin_unlock(&nn->nfs_client_lock);
- if (IS_ERR(clp))
- return clp;
if (new)
new->rpc_ops->free_client(new);
+ if (IS_ERR(clp))
+ return clp;
return nfs_found_client(cl_init, clp);
}
if (new) {

I'll patch/test and send it along.

Ben

Hi Ben, what happened to this patch?

I sent it along:

https://lore.kernel.org/linux-nfs/65b675cec79d140df64bc30def88b1def32bf87e.1560272160.git.bcodding@xxxxxxxxxx/

I don't think it will go in 5.2.. it's not a huge problem.

Ben

Okay, great. I didn't see it in linux-next and there was no further reply to
this thread, which usually (having seen it happen on lots of syzbot bugs) means
the person forgot about it.

Tip: you can use the '--in-reply-to=<MESSAGE_ID>' option to 'git send-email' or
'git format-patch' to send the patch in response to the original thread, which
makes it very easy to see that a patch was actually sent out.

Yep, that's nice for those following along, but sometimes I think that makes
it harder for the maintainers to scrape the patches off the list. I've had
patches get dropped that were buried at the end of a long discussion, so
I've made a habit of always making patches the top.

Ben