From: Eric Covener Date: Mon, 1 Dec 2008 14:31:51 +0000 (+0000) Subject: To be safe, consume the entire brigade after processing an error bucket in X-Git-Tag: 2.3.0~64 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d9555b238f577da070832b90fb53e95bb2f817a;p=thirdparty%2Fapache%2Fhttpd.git To be safe, consume the entire brigade after processing an error bucket in the HTTP output filter. Submitted by: Rudeiger Pluem Reviewed by: niq, covener git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@722081 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 65a553911fd..4c65f5bbc43 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,11 @@ Changes with Apache 2.3.0 [ When backported to 2.2.x, remove entry from this file ] + *) core: When the ap_http_header_filter processes an error bucket, cleanup + the passed brigade before returning AP_FILTER_ERROR down the filter + chain. This unambiguously ensures the same error bucket isn't revisited + [Ruediger Pluem] + *) mod_lbmethod_heartbeat: New module to load balance mod_proxy workers based on heartbeats. [Paul Querna] diff --git a/modules/http/http_filters.c b/modules/http/http_filters.c index 5e3dd116f05..7d194c2a22d 100644 --- a/modules/http/http_filters.c +++ b/modules/http/http_filters.c @@ -1145,7 +1145,11 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_http_header_filter(ap_filter_t *f, } } if (eb) { - ap_die(eb->status, r); + int status; + + status = eb->status; + apr_brigade_cleanup(b); + ap_die(status, r); return AP_FILTER_ERROR; }