Cliff Woolley wrote:
I haven't looked at the entire context of this, but if you remove a bucket
(brigade_first(ctx->bb) from a brigade without deleting it and without
having any extra pointers to it, you'll leak memory.

Thanks for catching that! I'll replace APR_BUCKET_REMOVE with a call to apr_bucket_delete(). Also just realized I need to add a call to deflateEnd().

Also, what happens if e *is* the first bucket in the brigade?  Can that
occur?  I think that by coincidence given the implementation of
APR_BUCKET_REMOVE, nothing bad would happen by double-removing a given
bucket twice in a row, but in general that seems like a bad idea and
should be avoided.

e is on the brigade passed into deflate_out_filter and the gzip header bucket is in ctx->bb so that is not a problem.

Thanks, Allan





Reply via email to