summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2019-07-16 19:49:42 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2019-07-18 20:06:29 +0200
commit1b29e369e88f32c4275141d9c5ab3652e56a5387 (patch)
treec198fc39fc4aa962576b33188b5ee4deb015d932
parent9f8abc60c260b89a4350848e2e971ce60e642a12 (diff)
evaluate: bogus error when refering to existing non-base chain
add rule ip testNEW test6 jump test8 ^^^^^ Error: invalid verdict chain expression value Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--src/evaluate.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/evaluate.c b/src/evaluate.c
index 55cd9d00..69b853f5 100644
--- a/src/evaluate.c
+++ b/src/evaluate.c
@@ -1988,12 +1988,9 @@ static int stmt_evaluate_verdict(struct eval_ctx *ctx, struct stmt *stmt)
if (stmt->expr->chain != NULL) {
if (expr_evaluate(ctx, &stmt->expr->chain) < 0)
return -1;
- if ((stmt->expr->chain->etype != EXPR_SYMBOL &&
- stmt->expr->chain->etype != EXPR_VALUE) ||
- stmt->expr->chain->symtype != SYMBOL_VALUE) {
- return stmt_error(ctx, stmt,
- "invalid verdict chain expression %s\n",
- expr_name(stmt->expr->chain));
+ if (stmt->expr->chain->etype != EXPR_VALUE) {
+ return expr_error(ctx->msgs, stmt->expr->chain,
+ "not a value expression");
}
}
break;