diff options
author | Rouslan Solomakhin <rouslan@chromium.org> | 2014-07-07 22:44:33 +0000 |
---|---|---|
committer | Fredrik Roubert <roubert@google.com> | 2014-09-01 19:20:48 +0200 |
commit | 4489e61b54d2d68966fa3276166afb8202bf44a4 (patch) | |
tree | 2c17d98bc173e113b95fc888dd73283d9345bfb3 | |
parent | decece2fb0624b1a9ca1731db533ab8353f99074 (diff) | |
download | src-4489e61b54d2d68966fa3276166afb8202bf44a4.tar.gz |
Add equality comparison to EqualToTolowerString.
Chromium browser tests on Windows in debug mode have exposed that
std::equal is not safe. It should be used only after a length
comparison. (Bot failures can be seen at http://goo.gl/qvaBg3,
http://goo.gl/j89rgZ, and http://goo.gl/CxcyYm.)
TBR=roubert@google.com
Review URL: https://codereview.appspot.com/106480044
-rw-r--r-- | cpp/src/util/cctype_tolower_equal.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/cpp/src/util/cctype_tolower_equal.cc b/cpp/src/util/cctype_tolower_equal.cc index 0adbba9..819138f 100644 --- a/cpp/src/util/cctype_tolower_equal.cc +++ b/cpp/src/util/cctype_tolower_equal.cc @@ -36,7 +36,8 @@ struct EqualToTolowerChar EqualToTolowerString::result_type EqualToTolowerString::operator()( const first_argument_type& a, const second_argument_type& b) const { - return std::equal(a.begin(), a.end(), b.begin(), EqualToTolowerChar()); + return a.size() == b.size() && + std::equal(a.begin(), a.end(), b.begin(), EqualToTolowerChar()); } } // addressinput |