summaryrefslogtreecommitdiff
path: root/server/util_filter.c
diff options
context:
space:
mode:
authorGraham Leggett <minfrin@apache.org>2015-10-06 22:38:28 +0000
committerGraham Leggett <minfrin@apache.org>2015-10-06 22:38:28 +0000
commit4d3a3704a2aa856691ff4e522f30640611dbbdcc (patch)
tree5dd360348533ed7a113212d5c72add3a44ee99bc /server/util_filter.c
parent2da6c9a57a7473c52d81b87e541228225691db6f (diff)
downloadhttpd-4d3a3704a2aa856691ff4e522f30640611dbbdcc.tar.gz
Make sure that transient buckets are morphed into real buckets before
the filter returns. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1707163 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'server/util_filter.c')
-rw-r--r--server/util_filter.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/server/util_filter.c b/server/util_filter.c
index 949d13e0a8..3a18169a52 100644
--- a/server/util_filter.c
+++ b/server/util_filter.c
@@ -736,6 +736,16 @@ AP_DECLARE(apr_status_t) ap_filter_setaside_brigade(ap_filter_t *f,
/* decide what pool we setaside to, request pool or deferred pool? */
if (f->r) {
+ apr_bucket *e;
+ for (e = APR_BRIGADE_FIRST(bb); e != APR_BRIGADE_SENTINEL(bb); e =
+ APR_BUCKET_NEXT(e)) {
+ if (APR_BUCKET_IS_TRANSIENT(e)) {
+ int rv = apr_bucket_setaside(e, f->r->pool);
+ if (rv != APR_SUCCESS) {
+ return rv;
+ }
+ }
+ }
pool = f->r->pool;
APR_BRIGADE_CONCAT(f->bb, bb);
}