httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Schaefer <joe+apa...@sunstarsys.com>
Subject Re: Segmentation fault when downloading large files
Date Thu, 05 Sep 2002 17:22:54 GMT
Graham Leggett <minfrin@sharp.fm> writes:

> Peter Van Biesen wrote:
> 
> > Does anybody have another idea for me to try ?
> 
> Have you tried the latest fix for the client_block stuff, I think I saw 
> a very recent CVS checkin...?
> 
> There could of course be more than one leak, and we'll only fix the 
> problem once all of them are found...


There's also a refcount problem in http_protocol.c wrt chunked
transfer codings. The problem is that the bucket holding the
chunk size isn't ever freed, so the corresponding data block
is overcounted.

Here's a diff for http_protocol.c against current anon-cvs (which
doesn't seem to have any of the newer changes to ap_get_client_block).
Light testing seems to indicate that this fixes the refcount problem.

diff -u -r1.454 http_protocol.c
--- http_protocol.c     13 Aug 2002 14:27:39 -0000      1.454
+++ http_protocol.c     5 Sep 2002 17:15:12 -0000
@@ -901,6 +901,7 @@
             if (rv == APR_SUCCESS) {
                 rv = apr_brigade_flatten(bb, line, &len);
                 if (rv == APR_SUCCESS) {
+                    apr_brigade_cleanup(bb);
                     ctx->remaining = get_chunk_size(line);
                 }
             }
@@ -966,6 +967,7 @@
                     if (rv == APR_SUCCESS) {
                         rv = apr_brigade_flatten(bb, line, &len);
                         if (rv == APR_SUCCESS) {
+                            apr_brigade_cleanup(bb);
                             ctx->remaining = get_chunk_size(line);
                         }
                     }


Mime
View raw message