From 06db230895a8643e8ef42dbad0edcb69a069b75c Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Sat, 9 Apr 2022 15:58:31 +0200 Subject: segtree: use correct byte order for 'element get' Fails when the argument / set contains strings: we need to use host byte order if element has string base type. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso --- src/segtree.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/segtree.c') diff --git a/src/segtree.c b/src/segtree.c index bed8bbcf..0135a074 100644 --- a/src/segtree.c +++ b/src/segtree.c @@ -720,6 +720,7 @@ static void set_elem_add(const struct set *set, struct expr *init, mpz_t value, struct expr *get_set_intervals(const struct set *set, const struct expr *init) { + enum byteorder byteorder = get_key_byteorder(set->key); struct expr *new_init; mpz_t low, high; struct expr *i; @@ -733,7 +734,7 @@ struct expr *get_set_intervals(const struct set *set, const struct expr *init) switch (i->key->etype) { case EXPR_VALUE: set_elem_add(set, new_init, i->key->value, - i->flags, i->byteorder); + i->flags, byteorder); break; case EXPR_CONCAT: compound_expr_add(new_init, expr_clone(i)); -- cgit v1.2.3