Fix: relayd: leak of config_path on duplicate --config option
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 21 Apr 2021 18:30:02 +0000 (14:30 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 21 Apr 2021 18:50:55 +0000 (14:50 -0400)
1452207 Resource leak

The system resource will not be reclaimed and reused, reducing the
future availability of the resource.

In lttng_notification_create_from_payload: Leak of memory or pointers to
system resources (CWE-404)

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

src/bin/lttng-relayd/main.c

index 9f094f542f29b1ea97e01858ad9799b1b94254d2..bdc27475eeaf3c89552ca3cd507ff8b5235c96c8 100644 (file)
@@ -520,7 +520,7 @@ static int set_options(int argc, char **argv)
        int c, ret = 0, option_index = 0, retval = 0;
        int orig_optopt = optopt, orig_optind = optind;
        char *default_address, *optstring;
-       const char *config_path = NULL;
+       char *config_path = NULL;
 
        optstring = utils_generate_optstring(long_options,
                        sizeof(long_options) / sizeof(struct option));
@@ -544,6 +544,7 @@ static int set_options(int argc, char **argv)
                        WARN("Getting '%s' argument from setuid/setgid binary refused for security reasons.",
                                "-f, --config");
                } else {
+                       free(config_path);
                        config_path = utils_expand_path(optarg);
                        if (!config_path) {
                                ERR("Failed to resolve path: %s", optarg);
@@ -656,6 +657,7 @@ static int set_options(int argc, char **argv)
        }
 
 exit:
+       free(config_path);
        free(optstring);
        return retval;
 }
This page took 0.027364 seconds and 4 git commands to generate.