summaryrefslogtreecommitdiffstats
path: root/net/url_request
diff options
context:
space:
mode:
authorjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-27 08:30:37 +0000
committerjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-27 08:30:37 +0000
commit2adf288a824642402629b806a34dd6fc91cb1851 (patch)
treed0f7fb4426ad094d116d3cc20b159e2fca621f62 /net/url_request
parentb0c4d1b323b0d3d543d4654d81082ed4651b3e35 (diff)
downloadchromium_src-2adf288a824642402629b806a34dd6fc91cb1851.zip
chromium_src-2adf288a824642402629b806a34dd6fc91cb1851.tar.gz
chromium_src-2adf288a824642402629b806a34dd6fc91cb1851.tar.bz2
Immediately reject empty cookie headers.
BUG=54785 TEST=DoNotSaveEmptyCookies Review URL: http://codereview.chromium.org/3453021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60621 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/url_request')
-rw-r--r--net/url_request/url_request_http_job.cc6
-rw-r--r--net/url_request/url_request_unittest.cc20
2 files changed, 24 insertions, 2 deletions
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
index 11df1d0..a3e88ab 100644
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -793,8 +793,10 @@ void URLRequestHttpJob::FetchResponseCookies(
std::string value;
void* iter = NULL;
- while (response_info->headers->EnumerateHeader(&iter, name, &value))
- cookies->push_back(value);
+ while (response_info->headers->EnumerateHeader(&iter, name, &value)) {
+ if (!value.empty())
+ cookies->push_back(value);
+ }
}
class HTTPSProberDelegate : public net::HTTPSProberDelegate {
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index c8eaad4..9070ef1 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -1560,6 +1560,26 @@ TEST_F(URLRequestTest, DoNotSaveCookies_ViaPolicy) {
}
}
+TEST_F(URLRequestTest, DoNotSaveEmptyCookies) {
+ net::TestServer test_server(net::TestServer::TYPE_HTTP, FilePath());
+ ASSERT_TRUE(test_server.Start());
+
+ scoped_refptr<TestURLRequestContext> context = new TestURLRequestContext();
+
+ // Set up an empty cookie.
+ {
+ TestDelegate d;
+ URLRequest req(test_server.GetURL("set-cookie"), &d);
+ req.set_context(context);
+ req.Start();
+ MessageLoop::current()->Run();
+
+ EXPECT_EQ(0, d.blocked_get_cookies_count());
+ EXPECT_EQ(0, d.blocked_set_cookie_count());
+ EXPECT_EQ(0, d.set_cookie_count());
+ }
+}
+
TEST_F(URLRequestTest, DoNotSendCookies_ViaPolicy_Async) {
net::TestServer test_server(net::TestServer::TYPE_HTTP, FilePath());
ASSERT_TRUE(test_server.Start());