Fix: lttng: enable-channel: leak of popt arguments
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 15 Apr 2022 00:22:03 +0000 (20:22 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 15 Apr 2022 03:46:04 +0000 (23:46 -0400)
==1245463==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 5 byte(s) in 1 object(s) allocated from:
    #0 0x7fe7c494fdd9 in __interceptor_malloc /usr/src/debug/gcc/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x7fe7c44a5c09  (/usr/lib/libpopt.so.0+0x3c09)

Arguments obtained with poptGetOptArg() must be free'd.

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

src/bin/lttng/commands/enable_channels.cpp

index 25327473f86109c3b736902942da9429b7c8bfa8..a7fffbff1b155409f1f613bd2e29bdf47cda29fd 100644 (file)
@@ -644,6 +644,11 @@ int cmd_enable_channels(int argc, const char **argv)
                        ret = CMD_UNDEFINED;
                        goto end;
                }
+
+               if (opt_arg) {
+                       free(opt_arg);
+                       opt_arg = nullptr;
+               }
        }
 
        ret = print_missing_or_multiple_domains(
@@ -755,5 +760,6 @@ end:
        /* Overwrite ret if an error occurred when enable_channel */
        ret = command_ret ? command_ret : ret;
        poptFreeContext(pc);
+       free(opt_arg);
        return ret;
 }
This page took 0.025572 seconds and 4 git commands to generate.