On 30 May 2002 [EMAIL PROTECTED] wrote:

>   -                bb = apr_brigade_create(f->c->pool, f->c->bucket_alloc);
>   +                apr_brigade_cleanup(bb);

The old code could actually cause some problems.  Some bucket types (eg
pool buckets) have cleanups that run.  If the bucket is cleaned up when
the r->pool dies but it is still sitting in a brigade that's forgotten
about until c->pool is cleaned up (as the old code here would have
caused), then the c->pool cleanup is going to do nasty things to the
memory now being used by the already-dead bucket it thinks is still within
it.  Don't know that that's actually what's happening here, just thought
I'd point it out.  There's really not much way around it other than
cleaning up buckets when you're done with them (meaning don't allocate
brigades out of c->pool unless you're sure all the buckets in it will live
that long :).

--Cliff

Reply via email to