From: Joe Schaefer Date: Fri, 15 Feb 2013 01:32:45 +0000 (+0000) Subject: ap_rgetline_core() now pulls from r->proto_input_filters X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=294eae62af09f835ab2e3269e4caa7c5b999f8d3;p=thirdparty%2Fapache%2Fhttpd.git ap_rgetline_core() now pulls from r->proto_input_filters for better input filtering behavior during chunked trailer processing by ap_http_filter(). git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1446421 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 965a892bb25..24c46bc37ee 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,8 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 + *) core: ap_rgetline_core now pulls from r->proto_input_filters. + *) mod_proxy_html: process parsed comments immediately. Fixes bug where parsed comments may be lost. [Nick Kew] diff --git a/server/protocol.c b/server/protocol.c index be53dd585fc..7745c1bdd76 100644 --- a/server/protocol.c +++ b/server/protocol.c @@ -191,6 +191,10 @@ AP_DECLARE(apr_time_t) ap_rationalize_mtime(request_rec *r, apr_time_t mtime) /* Get a line of protocol input, including any continuation lines * caused by MIME folding (or broken clients) if fold != 0, and place it * in the buffer s, of size n bytes, without the ending newline. + * + * Pulls from r->proto_input_filters instead of r->input_filters for + * stricter protocol adherence and better input filter behavior during + * chunked trailer processing (for http). * * If s is NULL, ap_rgetline_core will allocate necessary memory from r->pool. * @@ -229,7 +233,7 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, for (;;) { apr_brigade_cleanup(bb); - rv = ap_get_brigade(r->input_filters, bb, AP_MODE_GETLINE, + rv = ap_get_brigade(r->proto_input_filters, bb, AP_MODE_GETLINE, APR_BLOCK_READ, 0); if (rv != APR_SUCCESS) { return rv; @@ -346,7 +350,7 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, apr_brigade_cleanup(bb); /* We only care about the first byte. */ - rv = ap_get_brigade(r->input_filters, bb, AP_MODE_SPECULATIVE, + rv = ap_get_brigade(r->proto_input_filters, bb, AP_MODE_SPECULATIVE, APR_BLOCK_READ, 1); if (rv != APR_SUCCESS) { return rv;