Blame SOURCES/0010-segtree-stop-iteration-on-existing-elements-in-case-.patch

9ff721
From d1145542184ec34ce19f383ea3d361d3287651ee Mon Sep 17 00:00:00 2001
9ff721
From: Pablo Neira Ayuso <pablo@netfilter.org>
9ff721
Date: Wed, 3 Oct 2018 16:19:47 +0200
9ff721
Subject: [PATCH] segtree: stop iteration on existing elements in case range is
9ff721
 found
9ff721
9ff721
No need to keep iterating once the range object has been allocated.
9ff721
9ff721
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
9ff721
(cherry picked from commit a493147e60d350aca4197975281bf2ffe4cd1009)
9ff721
Signed-off-by: Phil Sutter <psutter@redhat.com>
9ff721
---
9ff721
 src/segtree.c | 10 ++++++----
9ff721
 1 file changed, 6 insertions(+), 4 deletions(-)
9ff721
9ff721
diff --git a/src/segtree.c b/src/segtree.c
9ff721
index dc2554b72acf3..dc457d6bc1b7d 100644
9ff721
--- a/src/segtree.c
9ff721
+++ b/src/segtree.c
9ff721
@@ -661,16 +661,18 @@ static struct expr *get_set_interval_find(const struct table *table,
9ff721
 			range_expr_value_low(low, i);
9ff721
 			range_expr_value_high(high, i);
9ff721
 			if (mpz_cmp(left->key->value, low) >= 0 &&
9ff721
-			    mpz_cmp(right->key->value, high) <= 0)
9ff721
+			    mpz_cmp(right->key->value, high) <= 0) {
9ff721
 				range = range_expr_alloc(&internal_location,
9ff721
 							 expr_clone(left->key),
9ff721
 							 expr_clone(right->key));
9ff721
+				goto out;
9ff721
+			}
9ff721
 			break;
9ff721
 		default:
9ff721
 			break;
9ff721
 		}
9ff721
 	}
9ff721
-
9ff721
+out:
9ff721
 	mpz_clear(low);
9ff721
 	mpz_clear(high);
9ff721
 
9ff721
@@ -697,14 +699,14 @@ static struct expr *get_set_interval_end(const struct table *table,
9ff721
 				range = range_expr_alloc(&internal_location,
9ff721
 							 expr_clone(left->key),
9ff721
 							 expr_clone(i->key->right));
9ff721
-				break;
9ff721
+				goto out;
9ff721
 			}
9ff721
 			break;
9ff721
 		default:
9ff721
 			break;
9ff721
 		}
9ff721
 	}
9ff721
-
9ff721
+out:
9ff721
 	mpz_clear(low);
9ff721
 	mpz_clear(high);
9ff721
 
9ff721
-- 
bacbc8
2.21.0
9ff721