diff options
author | Laszlo Papp <ext-laszlo.papp@nokia.com> | 2011-03-07 14:33:38 +0200 |
---|---|---|
committer | Miklos Szeredi <mszeredi@suse.cz> | 2011-03-30 19:34:58 +0200 |
commit | db5d46976b35462cd953e2d4b2e3707562327c4f (patch) | |
tree | 8e6131a4506612cc2cf860c5b5009146d505aea3 | |
parent | c47093404336bbaac2156a15782635dec4f70296 (diff) |
Fix a potential resource leak (newargv)
-rw-r--r-- | lib/fuse_opt.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/fuse_opt.c b/lib/fuse_opt.c index b15e7db..b912764 100644 --- a/lib/fuse_opt.c +++ b/lib/fuse_opt.c @@ -54,10 +54,15 @@ int fuse_opt_add_arg(struct fuse_args *args, const char *arg) assert(!args->argv || args->allocated); + newarg = strdup(arg); + if (!newarg) + return alloc_failed(); + newargv = realloc(args->argv, (args->argc + 2) * sizeof(char *)); - newarg = newargv ? strdup(arg) : NULL; - if (!newargv || !newarg) + if (!newargv) { + free(newarg); return alloc_failed(); + } args->argv = newargv; args->allocated = 1; |