* Christian Babeux ([email protected]) wrote: > The session_name should not be free(3) if the user has specified > a session name on the command line. Also, the caller is responsible to > free the allocated string when calling get_session_name(). > Handle both cases gracefully. > > Signed-off-by: Christian Babeux <[email protected]>
Acked-by: Mathieu Desnoyers <[email protected]> > --- > src/bin/lttng/commands/destroy.c | 27 ++++++++++++++++----------- > 1 file changed, 16 insertions(+), 11 deletions(-) > > diff --git a/src/bin/lttng/commands/destroy.c > b/src/bin/lttng/commands/destroy.c > index 5b69cb5..7b7ea0e 100644 > --- a/src/bin/lttng/commands/destroy.c > +++ b/src/bin/lttng/commands/destroy.c > @@ -28,6 +28,7 @@ > > #include <common/sessiond-comm/sessiond-comm.h> > > +static char *opt_session_name; > static int opt_destroy_all; > > enum { > @@ -156,28 +157,32 @@ int cmd_destroy(int argc, const char **argv) > goto end; > } > > - session_name = (char *) poptGetArg(pc); > - > - /* > - * ignore session name in case all > - * sessions are to be destroyed > - */ > + /* Ignore session name in case all sessions are to be destroyed */ > if (opt_destroy_all) { > ret = destroy_all_sessions(); > goto end; > } > - if (session_name == NULL) { > - ret = get_default_session_name(&session_name); > - if (ret < 0 || session_name == NULL) { > + > + opt_session_name = (char *) poptGetArg(pc); > + > + if (opt_session_name == NULL) { > + /* No session name specified, lookup default */ > + session_name = get_session_name(); > + if (session_name == NULL) { > + ret = CMD_ERROR; > goto end; > } > + } else { > + session_name = opt_session_name; > } > + > ret = destroy_session(session_name); > > end: > - poptFreeContext(pc); > - if (session_name != NULL) { > + if (opt_session_name == NULL) { > free(session_name); > } > + > + poptFreeContext(pc); > return ret; > } > -- > 1.7.11.4 > > > _______________________________________________ > lttng-dev mailing list > [email protected] > http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com _______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
