From e26bf1db610464fd3c3b5040715ddbcb68bcbcab Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Wed, 9 Nov 2016 00:19:45 +0100 Subject: segtree: keep element comments in set intervals The conversion from the set element range representation to element intervals doesn't keep the comment information around. Fixes: https://bugzilla.netfilter.org/show_bug.cgi?id=1090 Signed-off-by: Pablo Neira Ayuso Tested-by: Arturo Borrero Gonzalez --- src/segtree.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/segtree.c b/src/segtree.c index fa11967a..32e071f6 100644 --- a/src/segtree.c +++ b/src/segtree.c @@ -522,9 +522,13 @@ static void set_insert_interval(struct expr *set, struct seg_tree *tree, mpz_set(expr->value, ei->left); expr = set_elem_expr_alloc(&internal_location, expr); - if (ei->expr != NULL && ei->expr->ops->type == EXPR_MAPPING) - expr = mapping_expr_alloc(&ei->expr->location, expr, - expr_get(ei->expr->right)); + if (ei->expr != NULL) { + if (ei->expr->comment) + expr->comment = xstrdup(ei->expr->comment); + if (ei->expr->ops->type == EXPR_MAPPING) + expr = mapping_expr_alloc(&ei->expr->location, expr, + expr_get(ei->expr->right)); + } if (ei->flags & EI_F_INTERVAL_END) expr->flags |= EXPR_F_INTERVAL_END; -- cgit v1.2.3