summaryrefslogtreecommitdiffstats
path: root/src/evaluate.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2021-07-26 18:00:09 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2021-07-26 18:21:19 +0200
commit435440babe42a9fac2172547dfed3e0418e0d803 (patch)
tree2dd69d41b87007d18f48b14d31b1943b5c139da0 /src/evaluate.c
parent08d2f049367153d2c3b03c95b2ca7256cdf3521d (diff)
evaluate: error reporting for missing statements in set/map declaration
Assuming this map: map y { type ipv4_addr : verdict } This patch slightly improves error reporting to refer to the missing 'counter' statement in the map declaration. # nft 'add element x y { 1.2.3.4 counter packets 1 bytes 1 : accept, * counter : drop }' Error: missing statement in map declaration add element x y { 1.2.3.4 counter packets 10 bytes 640 : accept, * counter : drop } ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/evaluate.c')
-rw-r--r--src/evaluate.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/evaluate.c b/src/evaluate.c
index 98309ea8..4609576b 100644
--- a/src/evaluate.c
+++ b/src/evaluate.c
@@ -1351,10 +1351,12 @@ static int __expr_evaluate_set_elem(struct eval_ctx *ctx, struct expr *elem)
"but element has %d", num_set_exprs,
num_elem_exprs);
} else if (num_set_exprs == 0) {
- if (!(set->flags & NFT_SET_EVAL))
- return expr_error(ctx->msgs, elem,
- "missing statements in %s definition",
+ if (!(set->flags & NFT_SET_EVAL)) {
+ elem_stmt = list_first_entry(&elem->stmt_list, struct stmt, list);
+ return stmt_error(ctx, elem_stmt,
+ "missing statement in %s declaration",
set_is_map(set->flags) ? "map" : "set");
+ }
return 0;
}