X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Flttng-ctl.c;h=469fffa980f33b6c527d94ac47e6fb51a3ce6f42;hp=0f9378c2c5d82507df87d2b83a46a5d5f192d733;hb=9f449915b9d44ce3c9c9255f5d491a62545fee25;hpb=9c55c24114a3ba83a423690b0e86d64c9b2fb027 diff --git a/src/lib/lttng-ctl/lttng-ctl.c b/src/lib/lttng-ctl/lttng-ctl.c index 0f9378c2c..469fffa98 100644 --- a/src/lib/lttng-ctl/lttng-ctl.c +++ b/src/lib/lttng-ctl/lttng-ctl.c @@ -797,7 +797,7 @@ static char *set_agent_filter(const char *filter, struct lttng_event *ev) assert(ev); /* Don't add filter for the '*' event. */ - if (ev->name[0] != '*') { + if (strcmp(ev->name, "*") != 0) { if (filter) { err = asprintf(&agent_filter, "(%s) && (logger_name == \"%s\")", filter, ev->name); @@ -920,12 +920,28 @@ static int generate_filter(char *filter_expression, ret = -LTTNG_ERR_FILTER_INVAL; goto parse_error; } + + /* Normalize globbing patterns in the expression. */ + ret = filter_visitor_ir_normalize_glob_patterns(ctx); + if (ret) { + ret = -LTTNG_ERR_FILTER_INVAL; + goto parse_error; + } + /* Validate strings used as literals in the expression. */ ret = filter_visitor_ir_validate_string(ctx); if (ret) { ret = -LTTNG_ERR_FILTER_INVAL; goto parse_error; } + + /* Validate globbing patterns in the expression. */ + ret = filter_visitor_ir_validate_globbing(ctx); + if (ret) { + ret = -LTTNG_ERR_FILTER_INVAL; + goto parse_error; + } + dbg_printf("done\n"); dbg_printf("Generating bytecode... ");