The following commit introduced a regression while fixing the filter and filter_expression ownership.
commit b0a23296344e57bd2e48e62ec2d7e0d8a38661bb Author: Jérémie Galarneau <jeremie.galarn...@efficios.com> Date: Sat Jan 12 14:53:56 2019 -0500 Fix: leak of filter bytecode and expression on agent event re-enable The agent subsystem does not properly assume the clean-up of an event's filter bytecode and expression when a previously disabled event is re-enabled. This change ensures that the ownership of both the filter bytecode and expression is assumed by the agent subsystem and discarded when a matching event is found. Steps to reproduce the leak: $ lttng create $ lttng enable-event --python allo --filter 'a[42] == 241' $ lttng disable-event --python allo $ lttng enable-event --python allo --filter 'a[42] == 241' Signed-off-by: Jérémie Galarneau <jeremie.galarn...@efficios.com> Setting the "filter" object to NULL prevents the call to add_filter_app_ctx when needed. We use the filter from the newly created event to perform the check and the call to add_filter_app_ctx. Fixes coverity #1399733 Signed-off-by: Jonathan Rajotte <jonathan.rajotte-jul...@efficios.com> --- src/bin/lttng-sessiond/event.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bin/lttng-sessiond/event.c b/src/bin/lttng-sessiond/event.c index f32db4429..a8b7646da 100644 --- a/src/bin/lttng-sessiond/event.c +++ b/src/bin/lttng-sessiond/event.c @@ -513,8 +513,9 @@ int event_agent_enable(struct ltt_ust_session *usess, created = 1; } - if (created && filter) { - ret = add_filter_app_ctx(filter, filter_expression, agt); + if (created && aevent->filter) { + ret = add_filter_app_ctx( + aevent->filter, aevent->filter_expression, agt); if (ret != LTTNG_OK) { goto error; } -- 2.17.1 _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev