X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fcmd.c;h=3adbbebcad1f46137838f6f95238a856815729f9;hb=fffd5b5bcf81510dcb890e1d34df3dd55964e998;hp=cf6764d6171b51446ffa62dec330bd386013500a;hpb=bf0a5e5d3ee71a4f9fc87208d9a4f2cf1510d0de;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/cmd.c b/src/bin/lttng-sessiond/cmd.c index cf6764d61..3adbbebca 100644 --- a/src/bin/lttng-sessiond/cmd.c +++ b/src/bin/lttng-sessiond/cmd.c @@ -1292,7 +1292,7 @@ static int cmd_enable_channel_internal(struct ltt_session *session, attr = lttng_channel_copy(_attr); if (!attr) { - ret = -LTTNG_ERR_NOMEM; + ret = LTTNG_ERR_NOMEM; goto end; } @@ -2819,7 +2819,7 @@ int cmd_start_trace(struct ltt_session *session) */ session->rotated_after_last_stop = false; - if (session->rotate_timer_period) { + if (session->rotate_timer_period && !session->rotation_schedule_timer_enabled) { int int_ret = timer_session_rotation_schedule_timer_start( session, session->rotate_timer_period); @@ -3766,8 +3766,8 @@ enum lttng_error_code cmd_list_channels(enum lttng_domain_type domain, channel = trace_ust_channel_to_lttng_channel(uchan); if (!channel) { - ret = LTTNG_ERR_NOMEM; - break; + ret_code = LTTNG_ERR_NOMEM; + goto end; } extended = (struct lttng_channel_extended *) @@ -3778,7 +3778,7 @@ enum lttng_error_code cmd_list_channels(enum lttng_domain_type domain, if (ret < 0) { lttng_channel_destroy(channel); ret_code = LTTNG_ERR_UNK; - break; + goto end; } extended->discarded_events = discarded_events; @@ -3789,11 +3789,12 @@ enum lttng_error_code cmd_list_channels(enum lttng_domain_type domain, if (ret) { ERR("Failed to serialize lttng_channel: channel name = '%s'", channel->name); + lttng_channel_destroy(channel); ret_code = LTTNG_ERR_UNK; - ret = -1; - break; + goto end; } + lttng_channel_destroy(channel); i++; } rcu_read_unlock(); @@ -4518,6 +4519,8 @@ enum lttng_error_code synchronize_tracer_notifier_register( (int) trigger_owner, ret_code); } + + goto end_unlock_session_list; } break; }