summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Menges <christian.menges@tum.de>2021-06-09 10:04:41 +0200
committerGitHub <noreply@github.com>2021-06-09 09:04:41 +0100
commit57b46adc35bd31e0a786a7c753590a5ce41ce6f7 (patch)
tree138e3fff3a1b0b9cb2732f4387f3e30484c0a062
parentf4187fe5fa3cb7703b2fe355e9faf1fbea2accd3 (diff)
downloadfuse-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.c16
-rwxr-xr-xtest/travis-build.sh4
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, &param, 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