]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
src: segtree: use value expression length
authorFlorian Westphal <fw@strlen.de>
Thu, 11 Jan 2018 15:30:20 +0000 (16:30 +0100)
committerFlorian Westphal <fw@strlen.de>
Fri, 16 Mar 2018 23:33:08 +0000 (00:33 +0100)
In case of EXPR_MAPPING, expr->len is 0, we need to use
the length of the key instead.

Without this we can get assertion failure later on:
nft: netlink_delinearize.c:1484: binop_adjust_one: Assertion `value->len >= binop->right->len' failed.

Signed-off-by: Florian Westphal <fw@strlen.de>
src/segtree.c

index de68071cba15636353cbaddfa21484880f8b151e..f8d62d7a24ce45c1e702a97b657550db48b7667d 100644 (file)
@@ -809,7 +809,7 @@ void interval_map_decompose(struct expr *set)
                        struct expr *tmp;
 
                        tmp = constant_expr_alloc(&low->location, low->dtype,
-                                                 low->byteorder, low->len,
+                                                 low->byteorder, expr_value(low)->len,
                                                  NULL);
 
                        mpz_add(range, range, expr_value(low)->value);