From: William A. Rowe Jr Date: Thu, 29 Jun 2017 00:16:37 +0000 (+0000) Subject: Restore single-char field names inadvertantly disallowed in 2.4.25. X-Git-Tag: 2.2.34~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1239f42a42ffbc3e12e9f479baadb9ac4e0d2bf2;p=thirdparty%2Fapache%2Fhttpd.git Restore single-char field names inadvertantly disallowed in 2.4.25. Backports: r1800173 PR: 61220 Submitted by: ylavic Reviewed by: wrowe, jchampion, ylavic git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@1800216 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 9ace7aefa56..e8d9f4ed8af 100644 --- a/CHANGES +++ b/CHANGES @@ -1,7 +1,8 @@ -*- coding: utf-8 -*- Changes with Apache 2.2.34 - + *) Allow single-char field names inadvertantly disallowed in 2.2.32. + PR 61220. [Yann Ylavic] Changes with Apache 2.2.33 diff --git a/STATUS b/STATUS index 9b5049feffa..4f84c835169 100644 --- a/STATUS +++ b/STATUS @@ -104,14 +104,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - *) Restore single-char field names inadvertantly disallowed in 2.4.25. - Backports: r1800173 - PR: 61220 - Submitted by: ylavic - trunk patch: http://svn.apache.org/r1800173 (plus CHANGES) - 2.2.x patch: https://home.apache.org/~jchampion/patches/2.2.x-allow-single-char-headers.patch - +1: wrowe, jchampion, ylavic - PATCHES PROPOSED TO BACKPORT FROM TRUNK: [ New proposals should be added at the end of the list ] diff --git a/server/protocol.c b/server/protocol.c index 2705bba812f..489e91a8fdc 100644 --- a/server/protocol.c +++ b/server/protocol.c @@ -1081,8 +1081,12 @@ AP_DECLARE(void) ap_get_mime_headers_core(request_rec *r, apr_bucket_brigade *bb return; } - /* last character of field-name */ - tmp_field = value - (value > last_field ? 1 : 0); + if (value == last_field) { + r->status = HTTP_BAD_REQUEST; + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "Request header field name was empty"); + return; + } *value++ = '\0'; /* NUL-terminate at colon */ @@ -1105,13 +1109,6 @@ AP_DECLARE(void) ap_get_mime_headers_core(request_rec *r, apr_bucket_brigade *bb " bad whitespace"); return; } - - if (tmp_field == last_field) { - r->status = HTTP_BAD_REQUEST; - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, - "Request header field name was empty"); - return; - } } else /* Using strict RFC7230 parsing */ {