You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ni...@apache.org on 2007/12/12 21:43:09 UTC

svn commit: r603732 - in /httpd/httpd/branches/2.2.x: CHANGES STATUS modules/http/chunk_filter.c server/protocol.c

Author: niq
Date: Wed Dec 12 12:43:04 2007
New Revision: 603732

URL: http://svn.apache.org/viewvc?rev=603732&view=rev
Log:
Backport r602735 and r602735

Modified:
    httpd/httpd/branches/2.2.x/CHANGES
    httpd/httpd/branches/2.2.x/STATUS
    httpd/httpd/branches/2.2.x/modules/http/chunk_filter.c
    httpd/httpd/branches/2.2.x/server/protocol.c

Modified: httpd/httpd/branches/2.2.x/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?rev=603732&r1=603731&r2=603732&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/CHANGES [utf-8] (original)
+++ httpd/httpd/branches/2.2.x/CHANGES [utf-8] Wed Dec 12 12:43:04 2007
@@ -5,6 +5,14 @@
      mod_imagemap: Fix a cross-site scripting issue.  Reported by JPCERT.
      [Joe Orton]  
 
+  *) core: Lower memory consumption of ap_r* functions by reusing the brigade
+     instead of recreating it during each filter pass.
+     [Stefan Fritsch <sf sfritsch.de>]
+
+  *) core: Lower memory consumption in case that flush buckets are passed thru
+     the chunk filter as last bucket of a brigade. PR 23567.
+     [Stefan Fritsch <sf sfritsch.de>]
+
   *) core: Fix broken chunk filtering that causes all non blocking reads to be
      converted into blocking reads.  PR 19954, 41056.
      [Jean-Frederic Clere, Jim Jagielski]

Modified: httpd/httpd/branches/2.2.x/STATUS
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/STATUS?rev=603732&r1=603731&r2=603732&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/STATUS (original)
+++ httpd/httpd/branches/2.2.x/STATUS Wed Dec 12 12:43:04 2007
@@ -85,23 +85,6 @@
      2.2.x version of the patch works
      +1 mturk, fuankg, rpluem
 
-   * core: Lower memory consumption in case that flush buckets are passed thru
-     the chunk filter as last bucket of a brigade.
-     PR: 23567
-     Trunk version of patch:
-        http://svn.apache.org/viewcvs.cgi?rev=602735&view=rev
-     Backport version for 2.2.x of patch:
-        Trunk version of patch works
-     +1: rpluem, jorton, niq
-
-   * core: Lower memory consumption of ap_r* functions by reusing the brigade
-     instead of recreating it during each filter pass.
-     Trunk version of patch:
-        http://svn.apache.org/viewcvs.cgi?rev=603227&view=rev
-     Backport version for 2.2.x of patch:
-        Trunk version of patch works
-     +1: rpluem, jorton, niq
-
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ New proposals should be added at the end of the list ]
 

Modified: httpd/httpd/branches/2.2.x/modules/http/chunk_filter.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/modules/http/chunk_filter.c?rev=603732&r1=603731&r2=603732&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/modules/http/chunk_filter.c (original)
+++ httpd/httpd/branches/2.2.x/modules/http/chunk_filter.c Wed Dec 12 12:43:04 2007
@@ -85,7 +85,9 @@
             }
             if (APR_BUCKET_IS_FLUSH(e)) {
                 flush = e;
-                more = apr_brigade_split(b, APR_BUCKET_NEXT(e));
+                if (e != APR_BRIGADE_LAST(b)) {
+                    more = apr_brigade_split(b, APR_BUCKET_NEXT(e));
+                }
                 break;
             }
             else if (e->length == (apr_size_t)-1) {

Modified: httpd/httpd/branches/2.2.x/server/protocol.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/server/protocol.c?rev=603732&r1=603731&r2=603732&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/server/protocol.c (original)
+++ httpd/httpd/branches/2.2.x/server/protocol.c Wed Dec 12 12:43:04 2007
@@ -1399,9 +1399,7 @@
          * can simply insert our buffered data at the front and
          * pass the whole bundle down the chain.
          */
-        APR_BRIGADE_CONCAT(ctx->bb, bb);
-        bb = ctx->bb;
-        ctx->bb = NULL;
+        APR_BRIGADE_PREPEND(bb, ctx->bb);
     }
 
     return ap_pass_brigade(f->next, bb);