diff options
author | Graham Leggett <minfrin@apache.org> | 2015-10-06 22:38:28 +0000 |
---|---|---|
committer | Graham Leggett <minfrin@apache.org> | 2015-10-06 22:38:28 +0000 |
commit | 4d3a3704a2aa856691ff4e522f30640611dbbdcc (patch) | |
tree | 5dd360348533ed7a113212d5c72add3a44ee99bc /server/util_filter.c | |
parent | 2da6c9a57a7473c52d81b87e541228225691db6f (diff) | |
download | httpd-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.c | 10 |
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); } |