diff options
author | Winfried Koehler <w_scan@gmx-topmail.de> | 2016-03-10 12:19:59 +0100 |
---|---|---|
committer | Nikolaus Rath <Nikolaus@rath.org> | 2016-03-11 09:34:05 -0800 |
commit | feed2061ceb2b96b99871338e1a17de35578f24b (patch) | |
tree | 6195cacea974e7b6bc979999b7ff5d0d9023185a /lib/cuse_lowlevel.c | |
parent | b3b452ed7eb075af8b8555b72254e1e3c7cefa78 (diff) |
cuse_lowlevel.setup(): fix double free of local variable 'args'
Signed-off-by: Winfried Koehler <w_scan@gmx-topmail.de>
Diffstat (limited to 'lib/cuse_lowlevel.c')
-rw-r--r-- | lib/cuse_lowlevel.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/cuse_lowlevel.c b/lib/cuse_lowlevel.c index fbaa873..cef14c6 100644 --- a/lib/cuse_lowlevel.c +++ b/lib/cuse_lowlevel.c @@ -281,12 +281,16 @@ struct fuse_session *cuse_lowlevel_setup(int argc, char *argv[], int res; res = fuse_parse_cmdline(&args, NULL, multithreaded, &foreground); - if (res == -1) - goto err_args; + if (res == -1) { + fuse_opt_free_args(&args); + return NULL; + } res = fuse_opt_parse(&args, NULL, kill_subtype_opts, NULL); - if (res == -1) - goto err_args; + if (res == -1) { + fuse_opt_free_args(&args); + return NULL; + } /* * Make sure file descriptors 0, 1 and 2 are open, otherwise chaos @@ -301,7 +305,7 @@ struct fuse_session *cuse_lowlevel_setup(int argc, char *argv[], se = cuse_lowlevel_new(&args, ci, clop, userdata); fuse_opt_free_args(&args); if (se == NULL) - goto err_args; + return NULL; fd = open(devname, O_RDWR); if (fd == -1) { @@ -335,8 +339,6 @@ err_sig: fuse_remove_signal_handlers(se); err_se: fuse_session_destroy(se); -err_args: - fuse_opt_free_args(&args); return NULL; } |