From ae7d32fc36d4e8714b392670ff2fd6af8135a322 Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Sat, 9 Apr 2022 15:58:25 +0200 Subject: evaluate: keep prefix expression length Else, range_expr_value_high() will see a 0 length when doing: mpz_init_bitmask(tmp, expr->len - expr->prefix_len); This wasn't a problem so far because prefix expressions generated from "string*" were never passed down to the prefix->range conversion functions. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso --- src/evaluate.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/evaluate.c') diff --git a/src/evaluate.c b/src/evaluate.c index d5ae071a..a20cc396 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -347,6 +347,7 @@ static int expr_evaluate_string(struct eval_ctx *ctx, struct expr **exprp) datatype_set(prefix, ctx->ectx.dtype); prefix->flags |= EXPR_F_CONSTANT; prefix->byteorder = BYTEORDER_HOST_ENDIAN; + prefix->len = expr->len; expr_free(expr); *exprp = prefix; -- cgit v1.2.3