* [PATCH] nfsd4: fix memory leak in nfsd4_encode_fattr()
@ 2014-03-10 4:52 Yan, Zheng
2014-03-10 8:04 ` Christoph Hellwig
2014-03-31 21:11 ` J. Bruce Fields
0 siblings, 2 replies; 4+ messages in thread
From: Yan, Zheng @ 2014-03-10 4:52 UTC (permalink / raw)
To: linux-nfs; +Cc: bfields, Yan, Zheng
fh_put() does not free the temporary file handle.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
---
fs/nfsd/nfs4xdr.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 63f2395..8de4c9d 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -2499,8 +2499,10 @@ out:
security_release_secctx(context, contextlen);
#endif /* CONFIG_NFSD_V4_SECURITY_LABEL */
kfree(acl);
- if (tempfh)
+ if (tempfh) {
fh_put(tempfh);
+ kfree(tempfh);
+ }
return status;
out_nfserr:
status = nfserrno(err);
--
1.8.5.3
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] nfsd4: fix memory leak in nfsd4_encode_fattr()
2014-03-10 4:52 [PATCH] nfsd4: fix memory leak in nfsd4_encode_fattr() Yan, Zheng
@ 2014-03-10 8:04 ` Christoph Hellwig
2014-03-10 8:29 ` Yan, Zheng
2014-03-31 21:11 ` J. Bruce Fields
1 sibling, 1 reply; 4+ messages in thread
From: Christoph Hellwig @ 2014-03-10 8:04 UTC (permalink / raw)
To: Yan, Zheng; +Cc: linux-nfs, bfields
On Mon, Mar 10, 2014 at 12:52:07PM +0800, Yan, Zheng wrote:
> fh_put() does not free the temporary file handle.
Btw, it seems like the code to generate the file handle if it's missing
should be moved out of nfsd4_encode_fattr and into
nfsd4_encode_dirent_fattr or a small helper just called from there so that:
a) the code flow is more obvious
b) the calling conventions for nfsd4_encode_fattr are sensible
c) nfsd4_encode_fattr shrinks at least a tiny bit
d) the required cleanup becomes more obvious by being paired with the
allocation and initialization of the FH.
Just curious: which client asks for the FH or FSID in READDIRPLUS?
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] nfsd4: fix memory leak in nfsd4_encode_fattr()
2014-03-10 8:04 ` Christoph Hellwig
@ 2014-03-10 8:29 ` Yan, Zheng
0 siblings, 0 replies; 4+ messages in thread
From: Yan, Zheng @ 2014-03-10 8:29 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: linux-nfs, bfields
On 03/10/2014 04:04 PM, Christoph Hellwig wrote:
> On Mon, Mar 10, 2014 at 12:52:07PM +0800, Yan, Zheng wrote:
>> fh_put() does not free the temporary file handle.
>
> Btw, it seems like the code to generate the file handle if it's missing
> should be moved out of nfsd4_encode_fattr and into
> nfsd4_encode_dirent_fattr or a small helper just called from there so that:
>
> a) the code flow is more obvious
> b) the calling conventions for nfsd4_encode_fattr are sensible
> c) nfsd4_encode_fattr shrinks at least a tiny bit
> d) the required cleanup becomes more obvious by being paired with the
> allocation and initialization of the FH.
>
> Just curious: which client asks for the FH or FSID in READDIRPLUS?
>
Both nfs server and client are complied from 3.14-rc5 kernel. The exported
FS is Ceph.
Regards
Yan, Zheng
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] nfsd4: fix memory leak in nfsd4_encode_fattr()
2014-03-10 4:52 [PATCH] nfsd4: fix memory leak in nfsd4_encode_fattr() Yan, Zheng
2014-03-10 8:04 ` Christoph Hellwig
@ 2014-03-31 21:11 ` J. Bruce Fields
1 sibling, 0 replies; 4+ messages in thread
From: J. Bruce Fields @ 2014-03-31 21:11 UTC (permalink / raw)
To: Yan, Zheng; +Cc: linux-nfs
On Mon, Mar 10, 2014 at 12:52:07PM +0800, Yan, Zheng wrote:
> fh_put() does not free the temporary file handle.
Applying, sorry for the delay.--b.
>
> Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
> ---
> fs/nfsd/nfs4xdr.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
> index 63f2395..8de4c9d 100644
> --- a/fs/nfsd/nfs4xdr.c
> +++ b/fs/nfsd/nfs4xdr.c
> @@ -2499,8 +2499,10 @@ out:
> security_release_secctx(context, contextlen);
> #endif /* CONFIG_NFSD_V4_SECURITY_LABEL */
> kfree(acl);
> - if (tempfh)
> + if (tempfh) {
> fh_put(tempfh);
> + kfree(tempfh);
> + }
> return status;
> out_nfserr:
> status = nfserrno(err);
> --
> 1.8.5.3
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-03-31 21:11 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-10 4:52 [PATCH] nfsd4: fix memory leak in nfsd4_encode_fattr() Yan, Zheng
2014-03-10 8:04 ` Christoph Hellwig
2014-03-10 8:29 ` Yan, Zheng
2014-03-31 21:11 ` J. Bruce Fields
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).