2019-09-20 14:33:37

by Navid Emamdoost

[permalink] [raw]
Subject: [PATCH] NFSv4: fix memory leak if nfs4_begin_drain_session fails

In nfs4_try_migration, if nfs4_begin_drain_session fails the allocated
memory should be released.

Signed-off-by: Navid Emamdoost <[email protected]>
---
fs/nfs/nfs4state.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index cad4e064b328..124649f12067 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -2096,7 +2096,7 @@ static int nfs4_try_migration(struct nfs_server *server, const struct cred *cred

status = nfs4_begin_drain_session(clp);
if (status != 0)
- return status;
+ goto out;

status = nfs4_replace_transport(server, locations);
if (status != 0) {
--
2.17.1


2019-11-06 05:38:16

by Navid Emamdoost

[permalink] [raw]
Subject: Re: [PATCH] NFSv4: fix memory leak if nfs4_begin_drain_session fails

Would you please review this patch?

On Thu, Sep 19, 2019 at 7:22 PM Navid Emamdoost
<[email protected]> wrote:
>
> In nfs4_try_migration, if nfs4_begin_drain_session fails the allocated
> memory should be released.
>
> Signed-off-by: Navid Emamdoost <[email protected]>
> ---
> fs/nfs/nfs4state.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
> index cad4e064b328..124649f12067 100644
> --- a/fs/nfs/nfs4state.c
> +++ b/fs/nfs/nfs4state.c
> @@ -2096,7 +2096,7 @@ static int nfs4_try_migration(struct nfs_server *server, const struct cred *cred
>
> status = nfs4_begin_drain_session(clp);
> if (status != 0)
> - return status;
> + goto out;
>
> status = nfs4_replace_transport(server, locations);
> if (status != 0) {
> --
> 2.17.1
>


--
Navid.

2019-11-12 18:47:47

by Anna Schumaker

[permalink] [raw]
Subject: Re: [PATCH] NFSv4: fix memory leak if nfs4_begin_drain_session fails

Hi Navid,

On Tue, 2019-11-05 at 23:37 -0600, Navid Emamdoost wrote:
> Would you please review this patch?

This memory leak was fixed by:

commit 1e672e3644940d83bd94e7cb46bac6bb3627de02
Author: Wenwen Wang <[email protected]>
Date: Tue Aug 20 22:21:21 2019 -0500

NFSv4: Fix a memory leak bug

In nfs4_try_migration(), if nfs4_begin_drain_session() fails, the
previously allocated 'page' and 'locations' are not deallocated, leading to
memory leaks. To fix this issue, go to the 'out' label to free 'page' and
'locations' before returning the error.

Signed-off-by: Wenwen Wang <[email protected]>
Signed-off-by: Anna Schumaker <[email protected]>



And was included as part of the initial NFS merge for the v5.4-rc cycle.

Thanks,
Anna

>
> On Thu, Sep 19, 2019 at 7:22 PM Navid Emamdoost
> <[email protected]> wrote:
> > In nfs4_try_migration, if nfs4_begin_drain_session fails the allocated
> > memory should be released.
> >
> > Signed-off-by: Navid Emamdoost <[email protected]>
> > ---
> > fs/nfs/nfs4state.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
> > index cad4e064b328..124649f12067 100644
> > --- a/fs/nfs/nfs4state.c
> > +++ b/fs/nfs/nfs4state.c
> > @@ -2096,7 +2096,7 @@ static int nfs4_try_migration(struct nfs_server
> > *server, const struct cred *cred
> >
> > status = nfs4_begin_drain_session(clp);
> > if (status != 0)
> > - return status;
> > + goto out;
> >
> > status = nfs4_replace_transport(server, locations);
> > if (status != 0) {
> > --
> > 2.17.1
> >
>
> --
> Navid.