X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Ffilter%2Ffilter-visitor-generate-ir.c;h=56aa26d27009e25bcb6fff2bccdbcea8ea329215;hb=a0377dfefe40662ba7d68617bce6ff467114136c;hp=b7bc17d18ce0bb742e9b848ef4a079ecff39dca8;hpb=edf4b93e2f5c849cbec49e987990b3705ea49f6a;p=lttng-tools.git diff --git a/src/common/filter/filter-visitor-generate-ir.c b/src/common/filter/filter-visitor-generate-ir.c index b7bc17d18..56aa26d27 100644 --- a/src/common/filter/filter-visitor-generate-ir.c +++ b/src/common/filter/filter-visitor-generate-ir.c @@ -13,7 +13,6 @@ #include #include #include -#include #include #include "filter-ast.h" #include "filter-parser.h" @@ -63,7 +62,7 @@ struct ir_op *make_op_root(struct ir_op *child, enum ir_side side) static enum ir_load_string_type get_literal_string_type(const char *string) { - assert(string); + LTTNG_ASSERT(string); if (strutils_is_star_glob_pattern(string)) { if (strutils_is_star_at_the_end_only_glob_pattern(string)) { @@ -171,7 +170,7 @@ struct filter_node *load_expression_get_forward_chain(struct filter_node *node) struct filter_node *prev_node; for (;;) { - assert(node->type == NODE_EXPRESSION); + LTTNG_ASSERT(node->type == NODE_EXPRESSION); prev_node = node; node = node->u.expression.prev; if (!node) { @@ -244,6 +243,11 @@ struct ir_load_expression *create_load_expression(struct filter_node *node) bracket_node != NULL; bracket_node = bracket_node->u.expression.next_bracket) { prev_op = load_exp_op; + if (bracket_node->type != NODE_EXPRESSION || + bracket_node->u.expression.type != AST_EXP_CONSTANT) { + fprintf(stderr, "[error] Expecting constant index in array expression\n"); + goto error; + } load_exp_op = calloc(sizeof(struct ir_load_expression_op), 1); if (!load_exp_op) goto error;