diff options
author | rouslan@chromium.org <rouslan@chromium.org@38ededc0-08b8-5190-f2ac-b31f878777ad> | 2014-07-07 22:44:33 +0000 |
---|---|---|
committer | rouslan@chromium.org <rouslan@chromium.org@38ededc0-08b8-5190-f2ac-b31f878777ad> | 2014-07-07 22:44:33 +0000 |
commit | 4e10bb9dd340ddf1dcfb1b4ed04d30c73f86e6ff (patch) | |
tree | 015b1b986fd90132ba91fa643f757cca1e773d9f | |
parent | 771cc560df04dc201a90012c15b5814c33f6d5d8 (diff) | |
download | src-4e10bb9dd340ddf1dcfb1b4ed04d30c73f86e6ff.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
git-svn-id: http://libaddressinput.googlecode.com/svn/trunk@300 38ededc0-08b8-5190-f2ac-b31f878777ad
-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 |