summaryrefslogtreecommitdiffstats
path: root/net/http
diff options
context:
space:
mode:
authorellyjones@chromium.org <ellyjones@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-08 14:37:16 +0000
committerellyjones@chromium.org <ellyjones@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-08 14:37:16 +0000
commit06949c461a7fe40cb0c8c1be8879edfa99861ab5 (patch)
tree1e71ac23757157d2860b6f10c795af48dc31a817 /net/http
parentcb09cfd0f2d6d48c8e7094f1e3e30a9f158aac78 (diff)
downloadchromium_src-06949c461a7fe40cb0c8c1be8879edfa99861ab5.zip
chromium_src-06949c461a7fe40cb0c8c1be8879edfa99861ab5.tar.gz
chromium_src-06949c461a7fe40cb0c8c1be8879edfa99861ab5.tar.bz2
Escape non-ASCII response headers.
Response headers that are not valid UTF-8 can't be stored in a base::StringValue, which is always a UTF-8 string, so escape any non-ASCII values to be safe. This prevents a DCHECK when dev tools' network request inspector is open and we receive these headers. BUG=299880 Review URL: https://codereview.chromium.org/453483002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288357 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http')
-rw-r--r--net/http/http_response_headers.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/http/http_response_headers.cc b/net/http/http_response_headers.cc
index 6983669..3a9f7e0 100644
--- a/net/http/http_response_headers.cc
+++ b/net/http/http_response_headers.cc
@@ -1355,9 +1355,12 @@ base::Value* HttpResponseHeaders::NetLogCallback(
std::string value;
while (EnumerateHeaderLines(&iterator, &name, &value)) {
std::string log_value = ElideHeaderValueForNetLog(log_level, name, value);
+ std::string escaped_name = EscapeNonASCII(name);
+ std::string escaped_value = EscapeNonASCII(log_value);
headers->Append(
new base::StringValue(
- base::StringPrintf("%s: %s", name.c_str(), log_value.c_str())));
+ base::StringPrintf("%s: %s", escaped_name.c_str(),
+ escaped_value.c_str())));
}
dict->Set("headers", headers);
return dict;