You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2015/08/05 04:19:57 UTC
trafficserver git commit: TS-3814 Treat requests with Connection
header field as malformed, as per specs
Repository: trafficserver
Updated Branches:
refs/heads/master 1cbe7c70b -> 14f0599e6
TS-3814 Treat requests with Connection header field as malformed, as per specs
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/14f0599e
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/14f0599e
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/14f0599e
Branch: refs/heads/master
Commit: 14f0599e6342ae4944c95a052fc27c3c895b0d94
Parents: 1cbe7c7
Author: Ryo Okubo <ro...@yahoo-corp.jp>
Authored: Tue Aug 4 20:18:49 2015 -0600
Committer: Leif Hedstrom <zw...@apache.org>
Committed: Tue Aug 4 20:18:49 2015 -0600
----------------------------------------------------------------------
proxy/http2/HTTP2.cc | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/14f0599e/proxy/http2/HTTP2.cc
----------------------------------------------------------------------
diff --git a/proxy/http2/HTTP2.cc b/proxy/http2/HTTP2.cc
index 3b4ad96..3a84a59 100644
--- a/proxy/http2/HTTP2.cc
+++ b/proxy/http2/HTTP2.cc
@@ -534,16 +534,6 @@ convert_from_2_to_1_1_header(HTTPHdr *headers)
headers->field_delete(HPACK_VALUE_STATUS, HPACK_LEN_STATUS);
}
- // Intermediaries SHOULD also remove other connection-
- // specific header fields, such as Keep-Alive, Proxy-Connection,
- // Transfer-Encoding and Upgrade, even if they are not nominated by
- // Connection.
- headers->field_delete(MIME_FIELD_CONNECTION, MIME_LEN_CONNECTION);
- headers->field_delete(MIME_FIELD_KEEP_ALIVE, MIME_LEN_KEEP_ALIVE);
- headers->field_delete(MIME_FIELD_PROXY_CONNECTION, MIME_LEN_PROXY_CONNECTION);
- headers->field_delete(MIME_FIELD_TRANSFER_ENCODING, MIME_LEN_TRANSFER_ENCODING);
- headers->field_delete(MIME_FIELD_UPGRADE, MIME_LEN_UPGRADE);
-
return PARSE_DONE;
}
@@ -710,6 +700,11 @@ http2_parse_header_fragment(HTTPHdr *hdr, IOVec iov, Http2DynamicTable &dynamic_
return HPACK_ERROR_HTTP2_PROTOCOL_ERROR;
}
+ // rfc7540,sec8.1.2.2: Any message containing connection-specific header fields MUST be treated as malformed
+ if (name == MIME_FIELD_CONNECTION) {
+ return HPACK_ERROR_HTTP2_PROTOCOL_ERROR;
+ }
+
// :path pseudo header MUST NOT empty for http or https URIs
if (static_cast<unsigned>(name_len) == HPACK_LEN_PATH && strncmp(name, HPACK_VALUE_PATH, name_len) == 0) {
int value_len = 0;