X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Ftrace-ust.c;h=a3e25aa8adfed1532b95ffb22b67849f21e282fb;hb=f1b711c4d0d3c3f199b66f7c8f9e8b02c52401ca;hp=19a1c95d3e803fa9bf95683a0b82a4a953bf9d87;hpb=0c0fcd77061d4588fed9474446b36f7e15f4648e;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/trace-ust.c b/src/bin/lttng-sessiond/trace-ust.c index 19a1c95d3..a3e25aa8a 100644 --- a/src/bin/lttng-sessiond/trace-ust.c +++ b/src/bin/lttng-sessiond/trace-ust.c @@ -16,6 +16,7 @@ */ #define _GNU_SOURCE +#define _LGPL_SOURCE #include #include #include @@ -365,6 +366,7 @@ error: /* * Allocate and initialize a ust event. Set name and event type. + * We own filter_expression, filter, and exclusion. * * Return pointer to structure or NULL. */ @@ -440,6 +442,9 @@ struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev, error_free_event: free(lue); error: + free(filter_expression); + free(filter); + free(exclusion); return NULL; } @@ -754,11 +759,15 @@ void trace_ust_destroy_session(struct ltt_ust_session *session) rcu_read_lock(); cds_lfht_for_each_entry(session->agents->ht, &iter.iter, agt, node.node) { - lttng_ht_del(session->agents, &iter); + int ret = lttng_ht_del(session->agents, &iter); + + assert(!ret); agent_destroy(agt); } rcu_read_unlock(); + ht_cleanup_push(session->agents); + /* Cleanup UID buffer registry object(s). */ cds_list_for_each_entry_safe(reg, sreg, &session->buffer_reg_uid_list, lnode) {