X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fcmd.c;h=28e0df019cd2738fa8afff054ad8d0d55f6bb4c4;hb=e689039f2e09f448a071f81e483824cf9ca212fb;hp=507937ca1259415915a0aa71849ea4645fcfa0ec;hpb=989a08449dcb82204cd8caeb7841d5c20d32b475;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/cmd.c b/src/bin/lttng-sessiond/cmd.c index 507937ca1..28e0df019 100644 --- a/src/bin/lttng-sessiond/cmd.c +++ b/src/bin/lttng-sessiond/cmd.c @@ -4300,7 +4300,8 @@ enum lttng_error_code synchronize_tracer_notifier_register( struct lttng_trigger *trigger, const struct lttng_credentials *cmd_creds) { enum lttng_error_code ret_code; - struct lttng_condition *condition = lttng_trigger_get_condition(trigger); + const struct lttng_condition *condition = + lttng_trigger_get_const_condition(trigger); const char *trigger_name; uid_t trigger_owner; enum lttng_trigger_status trigger_status; @@ -4500,6 +4501,10 @@ enum lttng_error_code synchronize_tracer_notifier_unregister( switch (trigger_domain) { case LTTNG_DOMAIN_KERNEL: ret_code = kernel_unregister_event_notifier(trigger); + if (ret_code != LTTNG_OK) { + goto end_unlock_session_list; + } + break; case LTTNG_DOMAIN_UST: ust_app_global_update_all_event_notifier_rules(); @@ -4512,16 +4517,11 @@ enum lttng_error_code synchronize_tracer_notifier_unregister( struct agent *agt = agent_find_by_event_notifier_domain( trigger_domain); - if (!agt) { - agt = agent_create(trigger_domain); - if (!agt) { - ret_code = LTTNG_ERR_NOMEM; - goto end_unlock_session_list; - } - - agent_add(agt, trigger_agents_ht_by_domain); - } - + /* + * This trigger was never registered in the first place. Calling + * this function under those circumstances is an internal error. + */ + assert(agt); ret_code = trigger_agent_disable(trigger, agt); if (ret_code != LTTNG_OK) { goto end_unlock_session_list;