diff mbox series

NFSv4: fix memory leak if nfs4_begin_drain_session fails

Message ID 20190920002232.27477-1-navid.emamdoost@gmail.com (mailing list archive)
State New, archived
Headers show
Series NFSv4: fix memory leak if nfs4_begin_drain_session fails | expand

Commit Message

Navid Emamdoost Sept. 20, 2019, 12:22 a.m. UTC
In nfs4_try_migration, if nfs4_begin_drain_session fails the allocated
memory should be released.

Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
---
 fs/nfs/nfs4state.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Navid Emamdoost Nov. 6, 2019, 5:37 a.m. UTC | #1
Would you please review this patch?

On Thu, Sep 19, 2019 at 7:22 PM Navid Emamdoost
<navid.emamdoost@gmail.com> wrote:
>
> In nfs4_try_migration, if nfs4_begin_drain_session fails the allocated
> memory should be released.
>
> Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
> ---
>  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
>
Schumaker, Anna Nov. 12, 2019, 6:47 p.m. UTC | #2
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 <wenwen@cs.uga.edu>
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 <wenwen@cs.uga.edu>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>



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
> <navid.emamdoost@gmail.com> wrote:
> > In nfs4_try_migration, if nfs4_begin_drain_session fails the allocated
> > memory should be released.
> > 
> > Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
> > ---
> >  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.
diff mbox series

Patch

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) {