From c6766087f5f67a3bc625ea3bca43c380d1290cba Mon Sep 17 00:00:00 2001 From: Patrick McHardy Date: Sun, 9 Dec 2012 14:02:11 +0100 Subject: expression: fix constant expression splicing Fix reversed order during constant splicing. Signed-off-by: Patrick McHardy --- src/expression.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/expression.c b/src/expression.c index 5dbc327c..0bd2bb43 100644 --- a/src/expression.c +++ b/src/expression.c @@ -291,11 +291,13 @@ struct expr *constant_expr_splice(struct expr *expr, unsigned int len) BYTEORDER_INVALID, len, NULL); mpz_init2(mask, len); mpz_bitmask(mask, len); + mpz_lshift_ui(mask, expr->len - len); + mpz_set(slice->value, expr->value); mpz_and(slice->value, slice->value, mask); + mpz_rshift_ui(slice->value, expr->len - len); mpz_clear(mask); - mpz_rshift_ui(expr->value, len); expr->len -= len; return slice; } -- cgit v1.2.3