diff options
author | Christian Menges <christian.menges@tum.de> | 2021-06-09 10:04:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-09 09:04:41 +0100 |
commit | 57b46adc35bd31e0a786a7c753590a5ce41ce6f7 (patch) | |
tree | 138e3fff3a1b0b9cb2732f4387f3e30484c0a062 | |
parent | f4187fe5fa3cb7703b2fe355e9faf1fbea2accd3 (diff) | |
download | fuse-57b46adc35bd31e0a786a7c753590a5ce41ce6f7.tar.gz |
Cuse example: Fix memory leak (#607)
* cuse example: fix memory leak
* Travis CI: re-enable leak checking
-rw-r--r-- | example/cuse.c | 16 | ||||
-rwxr-xr-x | test/travis-build.sh | 4 |
2 files changed, 12 insertions, 8 deletions
diff --git a/example/cuse.c b/example/cuse.c index e2ccdcb..0c0e7bc 100644 --- a/example/cuse.c +++ b/example/cuse.c @@ -294,18 +294,21 @@ int main(int argc, char **argv) char dev_name[128] = "DEVNAME="; const char *dev_info_argv[] = { dev_name }; struct cuse_info ci; + int ret = 1; if (fuse_opt_parse(&args, ¶m, cusexmp_opts, cusexmp_process_arg)) { printf("failed to parse option\n"); - return 1; + free(param.dev_name); + goto out; } if (!param.is_help) { if (!param.dev_name) { fprintf(stderr, "Error: device name missing\n"); - return 1; + goto out; } - strncat(dev_name, param.dev_name, sizeof(dev_name) - 9); + strncat(dev_name, param.dev_name, sizeof(dev_name) - sizeof("DEVNAME=")); + free(param.dev_name); } memset(&ci, 0, sizeof(ci)); @@ -315,6 +318,9 @@ int main(int argc, char **argv) ci.dev_info_argv = dev_info_argv; ci.flags = CUSE_UNRESTRICTED_IOCTL; - return cuse_lowlevel_main(args.argc, args.argv, &ci, &cusexmp_clop, - NULL); + ret = cuse_lowlevel_main(args.argc, args.argv, &ci, &cusexmp_clop, NULL); + +out: + fuse_opt_free_args(&args); + return ret; } diff --git a/test/travis-build.sh b/test/travis-build.sh index 3685909..04f3511 100755 --- a/test/travis-build.sh +++ b/test/travis-build.sh @@ -2,9 +2,7 @@ set -e -# Disable leak checking for now, there are some issues (or false positives) -# that we still need to fix -export ASAN_OPTIONS="detect_leaks=0" +export ASAN_OPTIONS="detect_leaks=1" export LSAN_OPTIONS="suppressions=$(pwd)/test/lsan_suppress.txt" export CC |