2003-03-11 14:48:07

by Oleg Drokin

[permalink] [raw]
Subject: [2.5] nfsd/export.c memleak.

Hello!

There is trivial memleak on error exit path in nfsd.
See the patch below.
Found with help of smatch + enhanced unfree script.

Bye,
Oleg

===== fs/nfsd/export.c 1.71 vs edited =====
--- 1.71/fs/nfsd/export.c Tue Feb 25 13:08:50 2003
+++ edited/fs/nfsd/export.c Tue Mar 11 17:55:18 2003
@@ -294,7 +294,10 @@

/* client */
len = qword_get(&mesg, buf, PAGE_SIZE);
- if (len <= 0) return -EINVAL;
+ if (len <= 0) {
+ err = -EINVAL;
+ goto out;
+ }
err = -ENOENT;
dom = auth_domain_find(buf);
if (!dom)


2003-03-11 21:56:26

by NeilBrown

[permalink] [raw]
Subject: Re: [2.5] nfsd/export.c memleak.

On Tuesday March 11, [email protected] wrote:
> Hello!
>
> There is trivial memleak on error exit path in nfsd.
> See the patch below.
> Found with help of smatch + enhanced unfree script.

Thanks to all threee of you?
However in keeping with the style of surrounding code I will make it:


===== fs/nfsd/export.c 1.71 vs edited =====
--- 1.71/fs/nfsd/export.c Tue Feb 25 13:08:50 2003
+++ edited/fs/nfsd/export.c Tue Mar 11 17:55:18 2003
@@ -294,7 +294,10 @@

/* client */
len = qword_get(&mesg, buf, PAGE_SIZE);
- if (len <= 0) return -EINVAL;
+ err = -EINVAL;
+ if (len <= 0)
+ goto out;
+
err = -ENOENT;
dom = auth_domain_find(buf);
if (!dom)

NeilBrown