diff options
Diffstat (limited to 'src/evaluate.c')
-rw-r--r-- | src/evaluate.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/evaluate.c b/src/evaluate.c index 83940378..55fb3b61 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -1950,6 +1950,13 @@ 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)); + } } break; case EXPR_MAP: |