From: Stefan Eissing Date: Fri, 5 May 2017 13:03:41 +0000 (+0000) Subject: On the trunk: X-Git-Tag: 2.5.0-alpha~428 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4a681f3c5d1e73a0d9b76598ad2755396213e851;p=apache On the trunk: mod_http2: fail requests without ERROR log in case we need to read interim responses and see only garbage. This can happen if proxied servers send data where none should be, e.g. a body for a HEAD request. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1794049 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 687cf65e6b..e6b5dcace9 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,10 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 + *) mod_http2: fail requests without ERROR log in case we need to read interim + responses and see only garbage. This can happen if proxied servers send + data where none should be, e.g. a body for a HEAD request. [Stefan Eissing] + *) Evaluate nested If/ElseIf/Else configuration blocks. [Luca Toscano, Jacob Champion] diff --git a/modules/http2/h2_from_h1.c b/modules/http2/h2_from_h1.c index a8f50987f3..56f051ef8c 100644 --- a/modules/http2/h2_from_h1.c +++ b/modules/http2/h2_from_h1.c @@ -449,7 +449,14 @@ static apr_status_t parse_status(h2_task *task, char *line) return APR_SUCCESS; } - ap_log_cerror(APLOG_MARK, APLOG_ERR, 0, task->c, APLOGNO(03467) + /* Seems like there is garbage on the connection. May be a leftover + * from a previous proxy request. + * This should only happen if the H2_RESPONSE filter is not yet in + * place (post_read_request has not been reached and the handler wants + * to write something. Probably just the interim response we are + * waiting for. But if there is other data hanging around before + * that, this needs to fail. */ + ap_log_cerror(APLOG_MARK, APLOG_DEBUG, 0, task->c, APLOGNO(03467) "h2_task(%s): unable to parse status line: %s", task->id, line); return APR_EINVAL;