X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Ftrace-ust.c;h=d06edcba3aebccfbd7336dd1b91a4fa4ac1c1e05;hb=aa7102d7b77e8db772ae1656e4435b2ddd67537c;hp=96225a21b4846e974ffb1f900c054202759e3b5a;hpb=aa3514e96f12c13f681a81ea275dc51dd63473c8;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/trace-ust.c b/src/bin/lttng-sessiond/trace-ust.c index 96225a21b..d06edcba3 100644 --- a/src/bin/lttng-sessiond/trace-ust.c +++ b/src/bin/lttng-sessiond/trace-ust.c @@ -336,6 +336,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. */ @@ -393,6 +394,11 @@ struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev, ERR("Unknown ust loglevel type (%d)", ev->loglevel_type); goto error_free_event; } + /* + * Fix for enabler race. Enable is now done explicitly by + * sessiond after setting filter. + */ + lue->attr.disabled = 1; /* Same layout. */ lue->filter_expression = filter_expression; @@ -411,6 +417,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; }