From e6f28e9d290da808ed25dc332c24819e7d1240cd Mon Sep 17 00:00:00 2001 From: Matthias Einwag Date: Sat, 3 Apr 2021 11:26:10 -0700 Subject: [PATCH] Fix insert and remove behavior for empty ranges `RangeSet::insert` and `RangeSet::remove` returned `true` when trying to insert an empty range. --- quinn-proto/src/range_set.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/quinn-proto/src/range_set.rs b/quinn-proto/src/range_set.rs index b13395cbb..96ffeb5b4 100644 --- a/quinn-proto/src/range_set.rs +++ b/quinn-proto/src/range_set.rs @@ -56,7 +56,7 @@ impl RangeSet { } pub fn insert(&mut self, mut x: Range) -> bool { - if x.end == 0 || x.start == x.end { + if x.is_empty() { return false; } if let Some((start, end)) = self.pred(x.start) { @@ -99,6 +99,10 @@ impl RangeSet { } pub fn remove(&mut self, x: Range) -> bool { + if x.is_empty() { + return false; + } + let before = match self.pred(x.start) { Some((start, end)) if end > x.start => { self.0.remove(&start);