From 8c104cf39ed7564bc7890319067e6003f7e53ddf Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Fri, 6 Mar 2015 07:33:11 +0000 Subject: [PATCH] HTTP header values should be treated as latin1, not UTF-8 =================================================================== Gbp-Pq: Name http-latin1.patch --- .../WebCore/platform/network/soup/ResourceRequestSoup.cpp | 8 ++++---- .../platform/network/soup/ResourceResponseSoup.cpp | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp b/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp index 546e94c075..19ee382c0a 100644 --- a/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp +++ b/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp @@ -65,12 +65,12 @@ void ResourceRequest::updateFromSoupMessageHeaders(SoupMessageHeaders* soupHeade const char* headerName; const char* headerValue; while (soup_message_headers_iter_next(&headersIter, &headerName, &headerValue)) - m_httpHeaderFields.set(String::fromUTF8(headerName), String::fromUTF8(headerValue)); + m_httpHeaderFields.set(String(headerName), String(headerValue)); } void ResourceRequest::updateSoupMessage(SoupMessage* soupMessage) const { - g_object_set(soupMessage, SOUP_MESSAGE_METHOD, httpMethod().utf8().data(), NULL); + g_object_set(soupMessage, SOUP_MESSAGE_METHOD, httpMethod().ascii().data(), NULL); GUniquePtr uri = createSoupURI(); soup_message_set_uri(soupMessage, uri.get()); @@ -80,7 +80,7 @@ void ResourceRequest::updateSoupMessage(SoupMessage* soupMessage) const SoupMessage* ResourceRequest::toSoupMessage() const { - SoupMessage* soupMessage = soup_message_new(httpMethod().utf8().data(), url().string().utf8().data()); + SoupMessage* soupMessage = soup_message_new(httpMethod().ascii().data(), url().string().utf8().data()); if (!soupMessage) return 0; @@ -102,7 +102,7 @@ void ResourceRequest::updateFromSoupMessage(SoupMessage* soupMessage) if (shouldPortBeResetToZero) m_url.setPort(0); - m_httpMethod = String::fromUTF8(soupMessage->method); + m_httpMethod = String(soupMessage->method); updateFromSoupMessageHeaders(soupMessage->request_headers); diff --git a/Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp b/Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp index 14d46b6a41..6f13fc56bb 100644 --- a/Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp +++ b/Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp @@ -87,7 +87,7 @@ void ResourceResponse::updateFromSoupMessageHeaders(const SoupMessageHeaders* me soup_message_headers_iter_init(&headersIter, headers); while (soup_message_headers_iter_next(&headersIter, &headerName, &headerValue)) - addHTTPHeaderField(String::fromUTF8WithLatin1Fallback(headerName, strlen(headerName)), String::fromUTF8WithLatin1Fallback(headerValue, strlen(headerValue))); + addHTTPHeaderField(String(headerName), String(headerValue)); String contentType; const char* officialType = soup_message_headers_get_one(headers, "Content-Type"); @@ -108,7 +108,8 @@ CertificateInfo ResourceResponse::platformCertificateInfo() const String ResourceResponse::platformSuggestedFilename() const { - return filenameFromHTTPContentDisposition(httpHeaderField(HTTPHeaderName::ContentDisposition)); + String contentDisposition(httpHeaderField(HTTPHeaderName::ContentDisposition)); + return filenameFromHTTPContentDisposition(String::fromUTF8WithLatin1Fallback(contentDisposition.characters8(), contentDisposition.length())); } } -- 2.30.2