From: Francesco Chemolli Date: Wed, 11 Jun 2014 10:31:56 +0000 (+0200) Subject: Fixed bug in CharacterSet::addRange() X-Git-Tag: SQUID_3_5_0_1~182 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d26d8af414eed23384d7504040d269edfd04a815;p=thirdparty%2Fsquid.git Fixed bug in CharacterSet::addRange() --- diff --git a/src/base/CharacterSet.cc b/src/base/CharacterSet.cc index 95d7045d3f..0955ebd4e2 100644 --- a/src/base/CharacterSet.cc +++ b/src/base/CharacterSet.cc @@ -34,10 +34,13 @@ CharacterSet::add(const unsigned char c) CharacterSet & CharacterSet::addRange(unsigned char low, unsigned char high) { - while (low <= high) { + //manual loop splitting is needed to cover case where high is 255 + // otherwise low will wrap, resulting in infinite loop + while (low < high) { chars_[static_cast(low)] = 1; ++low; } + chars_[static_cast(high)] = 1; return *this; }