X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fclear.c;h=24db9f37e89fb819e37e10dc4bdd349056c001b0;hp=353c855c6f11aed6036f6a8f855035d31d7f8b54;hb=8539125677fb0761db1fa2e4b2118eddd5765868;hpb=6186e5b839c77af387614eec6a1c24053e46c849 diff --git a/src/bin/lttng/commands/clear.c b/src/bin/lttng/commands/clear.c index 353c855c6..24db9f37e 100644 --- a/src/bin/lttng/commands/clear.c +++ b/src/bin/lttng/commands/clear.c @@ -168,7 +168,7 @@ int cmd_clear(int argc, const char **argv) static poptContext pc; char *session_name = NULL; const char *leftover = NULL; - + bool free_session_name = false; struct lttng_session *sessions = NULL; int count; int found; @@ -224,13 +224,7 @@ int cmd_clear(int argc, const char **argv) } if (!opt_clear_all) { - /* - * popt expects us to free this even if it returns a const char *. - * See https://www.mail-archive.com/popt-devel@rpm5.org/msg00193.html - * Force cast to char * allowing later freeing if necessary. - */ session_name = (char *) poptGetArg(pc); - if (!session_name) { /* No session name specified, lookup default */ session_name = get_session_name(); @@ -239,6 +233,7 @@ int cmd_clear(int argc, const char **argv) success = 0; goto mi_closing; } + free_session_name = true; } } else { session_name = NULL; @@ -323,7 +318,9 @@ end: } free(sessions); - free(session_name); + if (free_session_name) { + free(session_name); + } /* Overwrite ret if an error occurred during clear_session/all */ ret = command_ret ? command_ret : ret;