NFSv4: Fix a memory leak bug
authorWenwen Wang <wenwen@cs.uga.edu>
Wed, 21 Aug 2019 03:21:21 +0000 (22:21 -0500)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Wed, 21 Aug 2019 20:39:29 +0000 (16:39 -0400)
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>
fs/nfs/nfs4state.c

index cad4e06..e916aba 100644 (file)
@@ -2095,8 +2095,10 @@ static int nfs4_try_migration(struct nfs_server *server, const struct cred *cred
        }
 
        status = nfs4_begin_drain_session(clp);
-       if (status != 0)
-               return status;
+       if (status != 0) {
+               result = status;
+               goto out;
+       }
 
        status = nfs4_replace_transport(server, locations);
        if (status != 0) {