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