Tests: fix: lttng-create: leaked command parameter
[lttng-tools.git] / src / bin / lttng / commands / create.c
index 406bfb62ac32e0a64b6b98628a4948e8f4f83c87..705605c92826e3b214eaf2e05c47f449d418445b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 David Goulet <david.goulet@polymtl.ca>
+ * Copyright (C) 2011 EfficiOS Inc.
  * Copyright (C) 2019 Jérémie Galarneau <jeremie.galarneau@efficios.com>
  *
  * SPDX-License-Identifier: GPL-2.0-only
@@ -31,6 +31,8 @@
 #include <common/utils.h>
 #include <lttng/snapshot.h>
 #include <lttng/session-descriptor.h>
+#include <common/path.h>
+#include <lttng/lttng.h>
 
 static char *opt_output_path;
 static char *opt_session_name;
@@ -501,7 +503,7 @@ error:
  *
  *  Spawn a session daemon by forking and execv.
  */
-static int spawn_sessiond(char *pathname)
+static int spawn_sessiond(const char *pathname)
 {
        int ret = 0;
        pid_t pid;
@@ -580,7 +582,7 @@ end:
 static int launch_sessiond(void)
 {
        int ret;
-       char *pathname = NULL;
+       const char *pathname = NULL;
 
        ret = lttng_session_daemon_alive();
        if (ret) {
@@ -672,6 +674,11 @@ int cmd_create(int argc, const char **argv)
                        uint64_t v;
 
                        errno = 0;
+                       if (opt_arg) {
+                               free(opt_arg);
+                               opt_arg = NULL;
+                       }
+
                        opt_arg = poptGetOptArg(pc);
                        if (!opt_arg) {
                                /* Set up default values. */
@@ -802,6 +809,7 @@ end:
        /* Overwrite ret if an error occurred in create_session() */
        ret = command_ret ? command_ret : ret;
 
+       free(opt_arg);
        poptFreeContext(pc);
        return ret;
 }
This page took 0.024262 seconds and 4 git commands to generate.