diff options
author | bengr@chromium.org <bengr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-06 06:05:57 +0000 |
---|---|---|
committer | bengr@chromium.org <bengr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-06 06:05:57 +0000 |
commit | 3d15fd89d916697d606ac6c3a87949ef68aac727 (patch) | |
tree | 8b261d45c0669f49a1eb3d6417a2b172163fc611 | |
parent | a4352d0e03d6494a1a72f78414904ef6068f547e (diff) | |
download | chromium_src-3d15fd89d916697d606ac6c3a87949ef68aac727.zip chromium_src-3d15fd89d916697d606ac6c3a87949ef68aac727.tar.gz chromium_src-3d15fd89d916697d606ac6c3a87949ef68aac727.tar.bz2 |
Fixed chrome proxy via check
This prevents a crash when a token on the via header
is fewer than four characters.
BUG=349020
Review URL: https://codereview.chromium.org/187273002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255274 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | net/http/http_response_headers.cc | 3 | ||||
-rw-r--r-- | net/http/http_response_headers_unittest.cc | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/net/http/http_response_headers.cc b/net/http/http_response_headers.cc index f26292a..2d74b38 100644 --- a/net/http/http_response_headers.cc +++ b/net/http/http_response_headers.cc @@ -1431,7 +1431,8 @@ bool HttpResponseHeaders::IsChromeProxyResponse() const { // space following it are always |kVersionSize| characters. E.g., // 'Via: 1.1 Chrome-Compression-Proxy' while (EnumerateHeader(&iter, "via", &value)) { - if (!value.compare(kVersionSize, value_len, kChromeProxyViaValue)) + if (value.size() >= kVersionSize + value_len && + !value.compare(kVersionSize, value_len, kChromeProxyViaValue)) return true; } diff --git a/net/http/http_response_headers_unittest.cc b/net/http/http_response_headers_unittest.cc index b6211ce..c433e1d 100644 --- a/net/http/http_response_headers_unittest.cc +++ b/net/http/http_response_headers_unittest.cc @@ -2056,6 +2056,10 @@ TEST(HttpResponseHeadersTest, IsChromeProxyResponse) { false, }, { "HTTP/1.1 200 OK\n" + "Via: 1\n", + false, + }, + { "HTTP/1.1 200 OK\n" "Via: 1.1 Chrome-Compression-Proxy\n", true, }, |