summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.com>2016-08-03 13:17:47 -0400
committerSteve Dickson <steved@redhat.com>2016-08-03 14:25:03 -0400
commit3a6174984dae93827dcbd269eb990f106f0ba2ed (patch)
tree5c02a2534de96374f3ecfb717a022e813a2c9100
parent2d0683f3843446a479cd9c451ea01e005937eebb (diff)
downloadnfs-utils-3a6174984dae93827dcbd269eb990f106f0ba2ed.tar.gz
mount: fix memory leak in v4root_add_parents
If pseudofs_update failed, we weren't freeing 'path'. Acked-by: J. Bruce Fields <bfields@fieldses.org> Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r--utils/mountd/v4root.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/utils/mountd/v4root.c b/utils/mountd/v4root.c
index d521725..f978f4c 100644
--- a/utils/mountd/v4root.c
+++ b/utils/mountd/v4root.c
@@ -152,6 +152,7 @@ static int v4root_add_parents(nfs_export *exp)
char *hostname = exp->m_export.e_hostname;
char *path;
char *ptr;
+ int ret = 0;
path = strdup(exp->m_export.e_path);
if (!path) {
@@ -160,19 +161,18 @@ static int v4root_add_parents(nfs_export *exp)
return -ENOMEM;
}
for (ptr = path; ptr; ptr = strchr(ptr, '/')) {
- int ret;
char saved;
saved = *ptr;
*ptr = '\0';
ret = pseudofs_update(hostname, *path ? path : "/", exp);
if (ret)
- return ret;
+ break;
*ptr = saved;
ptr++;
}
free(path);
- return 0;
+ return ret;
}
/*