You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by co...@apache.org on 2016/12/22 23:04:44 UTC

svn commit: r1775770 - in /httpd/httpd/trunk: CHANGES modules/filters/mod_ext_filter.c

Author: covener
Date: Thu Dec 22 23:04:44 2016
New Revision: 1775770

URL: http://svn.apache.org/viewvc?rev=1775770&view=rev
Log:
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



Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/modules/filters/mod_ext_filter.c

Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1775770&r1=1775769&r2=1775770&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Thu Dec 22 23:04:44 2016
@@ -1,6 +1,9 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.5.0
 
+  *) mod_ext_filter: Don't interfere with "error buckets" issued by other
+     modules. PR60375.  [Eric Covener, Lubos Uhliarik]
+
   *) mod_proxy_fcgi, mod_fcgid: Fix crashes in ap_fcgi_encoded_env_len() when
      modules add empty environment variables to the request. PR60275.
      [<alex2grad AT gmail.com>]

Modified: httpd/httpd/trunk/modules/filters/mod_ext_filter.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/filters/mod_ext_filter.c?rev=1775770&r1=1775769&r2=1775770&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/filters/mod_ext_filter.c (original)
+++ httpd/httpd/trunk/modules/filters/mod_ext_filter.c Thu Dec 22 23:04:44 2016
@@ -757,6 +757,13 @@ static int ef_unified_filter(ap_filter_t
             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()");