aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4state.c
diff options
context:
space:
mode:
authorWenwen Wang <wenwen@cs.uga.edu>2019-08-20 22:21:21 -0500
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2019-08-21 16:39:29 -0400
commit1e672e3644940d83bd94e7cb46bac6bb3627de02 (patch)
treec0c89d96442a7b4bcca9cfad564447131ba5d3ef /fs/nfs/nfs4state.c
parentxprtrdma: Optimize rpcrdma_post_recvs() (diff)
downloadlinux-dev-1e672e3644940d83bd94e7cb46bac6bb3627de02.tar.xz
linux-dev-1e672e3644940d83bd94e7cb46bac6bb3627de02.zip
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>
Diffstat (limited to 'fs/nfs/nfs4state.c')
-rw-r--r--fs/nfs/nfs4state.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index cad4e064b328..e916aba7a799 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -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) {