diff options
author | Patrick McHardy <kaber@trash.net> | 2012-12-09 14:02:11 +0100 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2012-12-09 14:08:11 +0100 |
commit | c6766087f5f67a3bc625ea3bca43c380d1290cba (patch) | |
tree | fb7f6bed29f6ed6b4d34271bc9edd068a6bb40d4 /src/expression.c | |
parent | 9fda8078b247524907259015ae3459024c736b76 (diff) |
expression: fix constant expression splicing
Fix reversed order during constant splicing.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'src/expression.c')
-rw-r--r-- | src/expression.c | 4 |
1 files changed, 3 insertions, 1 deletions
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; } |