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

From: Schumaker, Anna
Date: Tue Nov 12 2019 - 13:47:08 EST


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@xxxxxxxxxx>
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@xxxxxxxxxx>
Signed-off-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>



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