]> granicus.if.org Git - apache/commitdiff
back out bogus "fix" for subrequest buckets using wrong pool
authorJeff Trawick <trawick@apache.org>
Thu, 7 Jun 2001 03:02:03 +0000 (03:02 +0000)
committerJeff Trawick <trawick@apache.org>
Thu, 7 Jun 2001 03:02:03 +0000 (03:02 +0000)
Submitted by: Greg Stein

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89286 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
server/request.c

diff --git a/CHANGES b/CHANGES
index af50a8861118dbddf5f37db5622a3c731b4c2b56..bf148b6af133fb669a9da79a41b6131811a1ae0d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,10 +1,5 @@
 Changes with Apache 2.0.19-dev
 
-  *) Fix a problem with subrequest buckets having private data in the
-     wrong (i.e., subrequest) pool.  This could lead to a segfault
-     later after the subrequest pool is cleaned up.  
-     [Ryan Bloom, Jeff Trawick]
-
   *) Add a new request hook, error_log.  This phase allows modules
      to act on the error log string _after_ it has been written
      to the error log.  The goal for this hook is to allow monitoring
index dc222fb4a65b194048e4fc4f2178f5f407a826c0..4e2e1edbc58434777b3fcef1c7eb790ea0bbb0db 100644 (file)
@@ -808,40 +808,7 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_sub_req_output_filter(ap_filter_t *f,
     apr_bucket *e = APR_BRIGADE_LAST(bb);
 
     if (APR_BUCKET_IS_EOS(e)) {
-        apr_bucket_brigade *tmpbb;
-
         apr_bucket_delete(e);
-
-        if (!APR_BRIGADE_EMPTY(bb)) { /* avoid brigade create/destroy */
-
-            /* We need to be certain that any data in a bucket is valid
-             * after the subrequest pool is cleared.
-             */ 
-            tmpbb = apr_brigade_create(f->r->main->pool);
-            
-            APR_BRIGADE_FOREACH(e, bb) {
-                const char *str;
-                apr_size_t n;
-                apr_status_t rv;
-                
-                rv = apr_bucket_read(e, &str, &n, APR_BLOCK_READ);
-                /* XXX handle rv! */
-                
-                /* This apr_brigade_write does not use a flush function
-                   because we assume that we will not write enough data
-                   into it to cause a flush. However, if we *do* write
-                   "too much", then we could end up with transient
-                   buckets which would suck. This works for now, but is
-                   a bit shaky if changes are made to some of the
-                   buffering sizes. Let's do an assert to prevent
-                   potential future problems... */
-                AP_DEBUG_ASSERT(AP_MIN_BYTES_TO_WRITE <=
-                                APR_BUCKET_BUFF_SIZE);
-                apr_brigade_write(tmpbb, NULL, NULL, str, n);
-            }
-            apr_brigade_destroy(bb);
-            bb = tmpbb;
-        }
     }
     return ap_pass_brigade(f->next, bb);
 }