From: Ruediger Pluem Date: Sat, 17 Dec 2005 09:25:09 +0000 (+0000) Subject: * Fix ap_http_chunk_filter to create correct chunks in the case that a X-Git-Tag: 2.3.0~2653 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d13769140170af4f6099c50f9b91fbe8a5ac085d;p=thirdparty%2Fapache%2Fhttpd.git * 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/trunk@357328 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 5b58f7332e4..0bca33c35cb 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,9 @@ Changes with Apache 2.3.0 [Remove entries to the current 2.0 and 2.2 section below, when backported] + *) Chunk filter: Fix chunk filter to create correct chunks in the case that + a flush bucket is surrounded by data buckets. [Ruediger Pluem] + *) If a connection is aborted while waiting for a chunked line, flag the connection as errored out. [Justin Erenkrantz] diff --git a/modules/http/chunk_filter.c b/modules/http/chunk_filter.c index 42e464e2e87..71f4662fe4c 100644 --- a/modules/http/chunk_filter.c +++ b/modules/http/chunk_filter.c @@ -69,6 +69,8 @@ apr_status_t ap_http_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) */