summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoritsdeepak <deepak.sn@samsung.com>2016-12-19 14:56:40 +0530
committerNikolaus Rath <Nikolaus@rath.org>2016-12-23 18:37:04 -0800
commit3611d4e4a9936ed56999a763c7f6244c3dfe76a6 (patch)
treeaf1d4591d48a21c45a799b977592db465ca060eb
parent085cbab117b72df8da113a46d9ec9ba64ca301c6 (diff)
downloadfuse_3_0_bugfix.tar.gz
Memory leak fixed in file : mount_bsd.cfuse_3_0_bugfix
-rw-r--r--lib/mount_bsd.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/mount_bsd.c b/lib/mount_bsd.c
index f0eea6f..5e1ea1d 100644
--- a/lib/mount_bsd.c
+++ b/lib/mount_bsd.c
@@ -255,10 +255,16 @@ mount:
if (pid == 0) {
const char *argv[32];
int a = 0;
-
- if (! fdnam && asprintf(&fdnam, "%d", fd) == -1) {
- perror("fuse: failed to assemble mount arguments");
- exit(1);
+ int ret = -1;
+
+ if (! fdnam)
+ {
+ ret = asprintf(&fdnam, "%d", fd);
+ if(ret == -1)
+ {
+ perror("fuse: failed to assemble mount arguments");
+ exit(1);
+ }
}
argv[a++] = mountprog;
@@ -267,6 +273,10 @@ mount:
argv[a++] = opts;
}
argv[a++] = fdnam;
+
+ if(ret != -1)
+ free(fdnam);
+
argv[a++] = mountpoint;
argv[a++] = NULL;
execvp(mountprog, (char **) argv);