[lttng-dev] [PATCH lttng-tools] Fix: sessiond: ht_match_event(): check if filter is NULL

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Sat Jun 18 02:36:45 UTC 2016


Received: from jsutto (cable-192.222.213.99.electronicbox.net.

host mtl.efficios.com
mtl.efficios.com has address 192.222.213.99

Nice try Phil. ;-)

We'll need the actual contributor name to merge this contribution
however. I'm pretty sure there is no Mrs. Sutto at EfficiOS.

Thanks,

Mathieu

----- On Jun 15, 2016, at 5:34 PM, Janine Sutto janinesutto at gmail.com wrote:

> It looks like an agent event's filter expression is NULL when
> it's created with -a, for example:
> 
>    lttng enable-event -j -a
> 
> Since there's no check for this in ht_match_event(), strlen()
> makes the session daemon segfault with this scenario:
> 
>    lttng create
>    lttng enable-event -j -a
>    lttng disable-event -j -a
> 
> Signed-off-by: Janine Sutto <janinesutto at gmail.com>
> ---
> src/bin/lttng-sessiond/agent.c | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/src/bin/lttng-sessiond/agent.c b/src/bin/lttng-sessiond/agent.c
> index 8e1ef08..7cbbbde 100644
> --- a/src/bin/lttng-sessiond/agent.c
> +++ b/src/bin/lttng-sessiond/agent.c
> @@ -143,11 +143,18 @@ static int ht_match_event(struct cds_lfht_node *node,
> 	}
> 
> 	/* Filter expression */
> -	if (strncmp(event->filter_expression, key->filter_expression,
> -			strlen(event->filter_expression)) != 0) {
> +	if (!!event->filter_expression ^ !!key->filter_expression) {
> +		/* One has a filter expression, the other does not */
> 		goto no_match;
> 	}
> 
> +	if (event->filter_expression) {
> +		if (strncmp(event->filter_expression, key->filter_expression,
> +				strlen(event->filter_expression)) != 0) {
> +			goto no_match;
> +		}
> +	}
> +
> 	return 1;
> 
> no_match:
> --
> 2.8.3
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com


More information about the lttng-dev mailing list