Joe Schaefer wrote:
>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.
>
Thanks, I'll commit this now. I've applied a slightly simplified
form of this change: clearing the brigade right after the
apr_brigade_flatten
regardless of the return code.
I think there may be a couple of other bucket leaks in that same
file; I'll scan through it and fix any other leaks I can find.
Brian
>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);
> }
> }
>
>