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>
Wed, 18 May 2022 14:34:57 +0000 (10:34 -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.c

index 8550ee9ea2dca145122c5ea409d4ee9c184743be..f28b6751993069c45753acdbc929605cf480cfb0 100644 (file)
@@ -642,6 +642,11 @@ int cmd_enable_channels(int argc, const char **argv)
                        ret = CMD_UNDEFINED;
                        goto end;
                }
+
+               if (opt_arg) {
+                       free(opt_arg);
+                       opt_arg = NULL;
+               }
        }
 
        ret = print_missing_or_multiple_domains(
@@ -753,5 +758,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.026048 seconds and 4 git commands to generate.