summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2017-07-06 16:25:28 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2017-07-17 17:28:46 +0200
commita177d08d82c4cf946324640a63581e837164dc0b (patch)
treec330b564a8667ffdd9cc49484fc1ea6255042b9a
parent8069b60a331141f00924f9fc9fad478badff6687 (diff)
segtree: Fix expr_value_cmp()
Instead of returning the result of mpz_cmp(), this function returned 1 unless both elements were equal and the first one had EXPR_F_INTERVAL_END set. Signed-off-by: Phil Sutter <phil@nwl.cc> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--src/segtree.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/segtree.c b/src/segtree.c
index a2316a7b..f5353621 100644
--- a/src/segtree.c
+++ b/src/segtree.c
@@ -602,10 +602,12 @@ static int expr_value_cmp(const void *p1, const void *p2)
int ret;
ret = mpz_cmp(expr_value(e1)->value, expr_value(e2)->value);
- if (ret == 0 && (e1->flags & EXPR_F_INTERVAL_END))
- return -1;
- else
- return 1;
+ if (ret == 0) {
+ if (e1->flags & EXPR_F_INTERVAL_END)
+ return -1;
+ else if (e2->flags & EXPR_F_INTERVAL_END)
+ return 1;
+ }
return ret;
}