Fix: lttng-snapshot: use after free of max size argument
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 17 May 2022 17:41:49 +0000 (13:41 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 18 May 2022 14:29:36 +0000 (10:29 -0400)
gcc 12.1.0 reports:

commands/snapshot.cpp: In function ‘int cmd_snapshot(int, const char**)’:
../../../src/common/error.hpp:139:32: error: pointer ‘max_size_arg’ may be used after ‘void free(void*)’ [-Werror=use-after-free]

free max_size_arg on both paths.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: I3775e835e10b364f32f4797afb9c090ac4dc133c

src/bin/lttng/commands/snapshot.c

index d471bbe7870153a3256252bfa23a5980a6645401..c41a92f5cacdd5d2a1063962327a66e75a0c8827 100644 (file)
@@ -628,16 +628,16 @@ int cmd_snapshot(int argc, const char **argv)
                        const int parse_ret = utils_parse_size_suffix(
                                        (char *) max_size_arg, &val);
 
-                       free(max_size_arg);
                        if (parse_ret < 0) {
                                ERR("Unable to handle max-size value %s",
                                                max_size_arg);
                                cmd_ret = CMD_ERROR;
+                               free(max_size_arg);
                                goto end;
                        }
 
                        opt_max_size = val;
-
+                       free(max_size_arg);
                        break;
                }
                default:
This page took 0.02632 seconds and 4 git commands to generate.