From: Pablo Neira Ayuso Date: Tue, 21 Jul 2020 16:09:28 +0000 (+0200) Subject: evaluate: replace variable expression by the value expression X-Git-Tag: v0.9.7~60 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5173151863d3f44fa77506b0af25560fe1918c0f;p=thirdparty%2Fnftables.git evaluate: replace variable expression by the value expression The variable expression provides the binding between the variable dereference and the value expression. Replace the variable expression by the real value expression after the evaluation. Signed-off-by: Pablo Neira Ayuso --- diff --git a/src/evaluate.c b/src/evaluate.c index 3e94e0479..9290c6ff3 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -2013,10 +2013,13 @@ static int expr_evaluate_variable(struct eval_ctx *ctx, struct expr **exprp) { struct expr *new = expr_clone((*exprp)->sym->expr); + if (expr_evaluate(ctx, &new) < 0) + return -1; + expr_free(*exprp); *exprp = new; - return expr_evaluate(ctx, exprp); + return 0; } static int expr_evaluate_xfrm(struct eval_ctx *ctx, struct expr **exprp)