From: Ruediger Pluem Date: Sun, 18 Dec 2005 11:17:32 +0000 (+0000) Subject: Backport of r357328 from trunk: X-Git-Tag: 2.0.56~111 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c9f6052126a125b05e3836197e119bd176544bef;p=thirdparty%2Fapache%2Fhttpd.git Backport of r357328 from trunk: * Fix ap_http_chunk_filter to create correct chunks in the case that a flush bucket is pre- and postfixed by data buckets in the brigade. Submitted by: Ruediger Pluem Reviewed by: Justin Erenkrantz, Joe Orton, Jim Jagielski git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x@357454 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 2b9f6881e76..0705a2dace8 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.0.56 + *) Chunk filter: Fix chunk filter to create correct chunks in the case that + a flush bucket is surrounded by data buckets. [Ruediger Pluem] + *) SECURITY: CVE-2005-3352 (cve.mitre.org) mod_imap: Escape untrusted referer header before outputting in HTML to avoid potential cross-site scripting. Change also made to diff --git a/modules/http/http_core.c b/modules/http/http_core.c index 74872c82ead..ce0235ac6bb 100644 --- a/modules/http/http_core.c +++ b/modules/http/http_core.c @@ -124,6 +124,8 @@ static apr_status_t chunk_filter(ap_filter_t *f, apr_bucket_brigade *b) } if (APR_BUCKET_IS_FLUSH(e)) { flush = e; + more = apr_brigade_split(b, APR_BUCKET_NEXT(e)); + break; } else if (e->length == (apr_size_t)-1) { /* unknown amount of data (e.g. a pipe) */