aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2009-07-10 16:05:02 +0000
committerRob Austein <sra@hactrn.net>2009-07-10 16:05:02 +0000
commitda944a5d4c338f4f55db3ff5b1b634d9d6c4c4e0 (patch)
tree6149a2451c7d1273ac27721de2afcaf8df1aefc1
parentc045408f64be8bf0379c3f19dc4a000c6ce404ab (diff)
resource_set.union() was missing cases where one big range in set A
overlapped with multiple little ranges in set B. svn path=/rpkid/rpki/resource_set.py; revision=2601
-rw-r--r--rpkid/rpki/resource_set.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/rpkid/rpki/resource_set.py b/rpkid/rpki/resource_set.py
index b945e688..8308b79f 100644
--- a/rpkid/rpki/resource_set.py
+++ b/rpkid/rpki/resource_set.py
@@ -308,6 +308,12 @@ class resource_set(list):
if this.max > that.max: max = this.max
else: max = that.max
result.append(type(this)(min, max))
+ while set1 and set1[0].max <= max:
+ assert set1[0].min >= min
+ del set1[0]
+ while set2 and set2[0].max <= max:
+ assert set2[0].min >= min
+ del set2[0]
return type(self)(result)
def intersection(self, other):