From: Pablo Neira Ayuso Date: Tue, 8 Nov 2016 23:19:45 +0000 (+0100) Subject: segtree: keep element comments in set intervals X-Git-Tag: v0.7~42 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e26bf1db610464fd3c3b5040715ddbcb68bcbcab;p=thirdparty%2Fnftables.git 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 --- 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;