summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2019-06-10 13:51:20 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2019-06-10 13:54:06 +0200
commitaaf0167f2615372c1baaff327d1fb89d4297a52a (patch)
tree468c6983e8b45e59c01ee0a729fbf608fbbd1414 /src
parent619327e350d4f0f6915043d2127001fdf097b8b2 (diff)
expression: use expr_clone() from verdict_expr_clone()
Chains are now expressions, do not assume a constant value is used. ==26302== Process terminating with default action of signal 11 (SIGSEGV) ==26302== Access not within mapped region at address 0x50 ==26302== at 0x67D7EE7: __gmpz_init_set (in /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2) ==26302== by 0x4E61224: expr_clone (expression.c:65) ==26302== by 0x4E7898B: interval_map_decompose (segtree.c:943) ==26302== by 0x4E6DDA0: netlink_list_setelems (netlink.c:882) ==26302== by 0x4E5A806: cache_init_objects (rule.c:166) ==26302== by 0x4E5A806: cache_init (rule.c:216) ==26302== by 0x4E5A806: cache_update (rule.c:266) ==26302== by 0x4E7E0EE: nft_evaluate (libnftables.c:388) ==26302== by 0x4E7E8AB: nft_run_cmd_from_buffer (libnftables.c:428) Fixes: f1e8a129ee42 ("src: Introduce chain_expr in jump and goto statements") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r--src/expression.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/expression.c b/src/expression.c
index a41e2daf..ef694f2a 100644
--- a/src/expression.c
+++ b/src/expression.c
@@ -217,7 +217,7 @@ static void verdict_expr_clone(struct expr *new, const struct expr *expr)
{
new->verdict = expr->verdict;
if (expr->chain != NULL)
- mpz_init_set(new->chain->value, expr->chain->value);
+ new->chain = expr_clone(expr->chain);
}
static void verdict_expr_destroy(struct expr *expr)