]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Merge r1775770 from trunk:
authorJim Jagielski <jim@apache.org>
Fri, 23 Dec 2016 12:36:26 +0000 (12:36 +0000)
committerJim Jagielski <jim@apache.org>
Fri, 23 Dec 2016 12:36:26 +0000 (12:36 +0000)
pass along error buckets

In 2.4, they are generated by LimitRequestBody failures. trunk no
longer uses error buckets in this path, but someone else could.

PR60375

Submitted By: Eric Covener,Lubos Uhliarik <luhliari  redhat.com>
Committed By: covener

Submitted by: covener
Reviewed/backported by: jim

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1775832 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
STATUS
modules/filters/mod_ext_filter.c

diff --git a/CHANGES b/CHANGES
index 4cae328cae9c94d05fdb397a82ff6be3d4a160d6..43ec2edb5445200b40c61d07941b30cc4fdf1f8e 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@
 
 Changes with Apache 2.4.26
 
+  *) mod_ext_filter: Don't interfere with "error buckets" issued by other
+     modules. PR60375.  [Eric Covener, Lubos Uhliarik]
+
   *) mod_http2: fixes https://github.com/icing/mod_h2/issues/126 e.g. beam
      bucket lifetime handling when data is sent over temporary pools.
      [Stefan Eissing] 
diff --git a/STATUS b/STATUS
index 302ac86d8329fd9fb81eff525c538e242ac4cfbf..2cf13fa5a2c645156d9e74429d383b8acd1d911a 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -119,12 +119,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-  *) ext_filter: Don't eat error buckets. PR60375
-     trunk patch: http://svn.apache.org/r1775770
-     2.4 patch: trunk works
-     +1: covener, ylavic, jim
-     
-
 
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ New proposals should be added at the end of the list ]
index 9f183f69bca26f307059039a1cebc4a1d6402ea6..7aac19d86e38ba68a7e89806b5d376f852eb4513 100644 (file)
@@ -757,6 +757,13 @@ static int ef_unified_filter(ap_filter_t *f, apr_bucket_brigade *bb)
             break;
         }
 
+        if (AP_BUCKET_IS_ERROR(b)) {
+            apr_bucket *cpy;
+            apr_bucket_copy(b, &cpy);
+            APR_BRIGADE_INSERT_TAIL(bb_tmp, cpy);
+            break;
+        }
+
         rv = apr_bucket_read(b, &data, &len, APR_BLOCK_READ);
         if (rv != APR_SUCCESS) {
             ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(01463) "apr_bucket_read()");