]> granicus.if.org Git - apache/commitdiff
To be safe, consume the entire brigade after processing an error bucket in
authorEric Covener <covener@apache.org>
Mon, 1 Dec 2008 14:31:51 +0000 (14:31 +0000)
committerEric Covener <covener@apache.org>
Mon, 1 Dec 2008 14:31:51 +0000 (14:31 +0000)
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

CHANGES
modules/http/http_filters.c

diff --git a/CHANGES b/CHANGES
index 65a553911fd7f5a17e0b759f95a3a6e4a3d48b2d..4c65f5bbc43ced4a18456b293ca46df4b929f612 100644 (file)
--- 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]
 
index 5e3dd116f05a9e46624deded29593f1b5508dde9..7d194c2a22dba965e444869cd84e00d9b96ac0ad 100644 (file)
@@ -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;
     }