From: cypherpunks Date: Wed, 12 Sep 2018 02:14:29 +0000 (+0000) Subject: rust/protover: fix check for overlapping ranges X-Git-Tag: tor-0.3.3.11~39^2~1 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=03c4d0ab9cfb60ba036bb8e5fe980a5bd2551f7d;p=thirdparty%2Ftor.git rust/protover: fix check for overlapping ranges Closes ticket 27649. Bugfix on e6625113c98c281b0a649598d7daa347c28915e9. --- diff --git a/changes/bug27649 b/changes/bug27649 new file mode 100644 index 0000000000..6498e961e1 --- /dev/null +++ b/changes/bug27649 @@ -0,0 +1,4 @@ + o Minor bugfixes (rust): + - The protover rewrite in #24031 allowed repeated votes from the same + voter for the same protocol version to be counted multiple times in + protover_compute_vote(). Bugfix on 0.3.3.5-rc; fixes bug 27649. diff --git a/src/rust/protover/protoset.rs b/src/rust/protover/protoset.rs index 7e6f606a2f..b99e1a99f7 100644 --- a/src/rust/protover/protoset.rs +++ b/src/rust/protover/protoset.rs @@ -174,7 +174,7 @@ impl ProtoSet { if low == u32::MAX || high == u32::MAX { return Err(ProtoverError::ExceedsMax); } - if low < last_high { + if low <= last_high { return Err(ProtoverError::Overlap); } else if low > high { return Err(ProtoverError::LowGreaterThanHigh);