Fix: lttng-ctl: tracing_group memory leaks
[lttng-tools.git] / src / lib / lttng-ctl / lttng-ctl.c
index 239ed8f33b9472c814937d2323f12614acbc2f8c..887d268efe909df2a0435fb7e00a16064c502656 100644 (file)
@@ -18,6 +18,7 @@
 #include <unistd.h>
 
 #include <common/bytecode/bytecode.h>
+#include <common/align.h>
 #include <common/common.h>
 #include <common/compat/errno.h>
 #include <common/compat/string.h>
@@ -2456,7 +2457,7 @@ int lttng_list_events(struct lttng_handle *handle,
                        storage_req += ext_comm->nb_exclusions *
                                        LTTNG_SYMBOL_NAME_LEN;
                        /* Padding to ensure the flat probe is aligned. */
-                       storage_req = ALIGN_TO(storage_req, sizeof(uint64_t));
+                       storage_req = lttng_align_ceil(storage_req, sizeof(uint64_t));
                        storage_req += probe_storage_req;
                }
        }
@@ -2547,7 +2548,7 @@ int lttng_list_events(struct lttng_handle *handle,
 
                        /* Insert padding to align to 64-bits. */
                        ret = lttng_dynamic_buffer_set_size(&listing,
-                                       ALIGN_TO(listing.size,
+                                       lttng_align_ceil(listing.size,
                                                        sizeof(uint64_t)));
                        if (ret) {
                                ret = -LTTNG_ERR_NOMEM;
@@ -2613,14 +2614,19 @@ end:
  */
 int lttng_set_tracing_group(const char *name)
 {
+       char *new_group;
        if (name == NULL) {
                return -LTTNG_ERR_INVALID;
        }
 
-       if (asprintf(&tracing_group, "%s", name) < 0) {
+       if (asprintf(&new_group, "%s", name) < 0) {
                return -LTTNG_ERR_FATAL;
        }
 
+       free(tracing_group);
+       tracing_group = new_group;
+       new_group = NULL;
+
        return 0;
 }
 
This page took 0.02619 seconds and 4 git commands to generate.