From d129f83435adf65d30de28d50de0792b731f87a6 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Mon, 19 Jun 2017 13:59:33 +0200 Subject: evaluate: Better error reporting for bad set references In case you refer to an unexisting set, bail out with: # nft add table x # nft add chain x y # nft add rule x y ip protocol vmap @reject_to_rule2; :1:31-46: Error: Set 'reject_to_rule2' does not exist add rule x y ip protocol vmap @reject_to_rule2 ^^^^^^^^^^^^^^^^ Signed-off-by: Pablo Neira Ayuso --- src/evaluate.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/evaluate.c b/src/evaluate.c index ec898033..ca8b63b7 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -192,8 +192,9 @@ static int expr_evaluate_symbol(struct eval_ctx *ctx, struct expr **expr) set = set_lookup(table, (*expr)->identifier); if (set == NULL) - return cmd_error(ctx, "Could not process rule: Set '%s' does not exist", - (*expr)->identifier); + return expr_error(ctx->msgs, *expr, + "Set '%s' does not exist", + (*expr)->identifier); new = set_ref_expr_alloc(&(*expr)->location, set); break; } -- cgit v1.2.3