]> granicus.if.org Git - apache/commitdiff
* Set aside buckets that remain unprocessed in the filter context for the
authorRuediger Pluem <rpluem@apache.org>
Wed, 20 Feb 2008 13:44:22 +0000 (13:44 +0000)
committerRuediger Pluem <rpluem@apache.org>
Wed, 20 Feb 2008 13:44:22 +0000 (13:44 +0000)
  next filter pass.

PR: 44447
Submitted by: Harald Niesche <harald brokenerror.de>
Reviewed by: rpluem

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

CHANGES
modules/filters/mod_include.c

diff --git a/CHANGES b/CHANGES
index 59c601c5057e267d994d99592ecace753f054a0d..311bf36cbdaa52af67ba41b950190fbb7a2a2a8a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@
 Changes with Apache 2.3.0
 [ When backported to 2.2.x, remove entry from this file ]
 
+  *) mod_include: Correctly handle SSI directives split over multiple filter
+     passes.  PR 44447 [Harald Niesche <harald brokenerror.de>]
+
   *) http_filters: Don't returm 100-continue on client error
      PR 43711 [Chetan Reddy <chetanreddy gmail.com>]
 
index 2003e20b207ce3b3b5411fa9c4dc6c05bcd48040..c5a7ab9d5106d39ada47717a0d6564d70a171391 100644 (file)
@@ -3312,6 +3312,7 @@ static apr_status_t send_parsed_content(ap_filter_t *f, apr_bucket_brigade *bb)
             if (store) {
                 if (index) {
                     APR_BUCKET_REMOVE(b);
+                    apr_bucket_setaside(b, r->pool);
                     APR_BRIGADE_INSERT_TAIL(intern->tmp_bb, b);
                     b = newb;
                 }
@@ -3364,6 +3365,7 @@ static apr_status_t send_parsed_content(ap_filter_t *f, apr_bucket_brigade *bb)
             if (store) {
                 if (index) {
                     APR_BUCKET_REMOVE(b);
+                    apr_bucket_setaside(b, r->pool);
                     APR_BRIGADE_INSERT_TAIL(intern->tmp_bb, b);
                     b = newb;
                 }
@@ -3404,6 +3406,7 @@ static apr_status_t send_parsed_content(ap_filter_t *f, apr_bucket_brigade *bb)
             default:             /* partial match */
                 newb = APR_BUCKET_NEXT(b);
                 APR_BUCKET_REMOVE(b);
+                apr_bucket_setaside(b, r->pool);
                 APR_BRIGADE_INSERT_TAIL(intern->tmp_bb, b);
                 b = newb;
                 break;