httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Cliff Woolley <jwool...@virginia.edu>
Subject Re: RFC: Who owns a passed brigade?
Date Thu, 21 Apr 2005 20:58:12 GMT
On Thu, 21 Apr 2005, Paul Querna wrote:

> I agree that not having a clear rule has led to some possible leaks in
> many filters.  If some people think there has always been a 'rule', I
> contend that it has never been documented.

FWIW, the documentation says:

--------------------------------------------------------------------
/**
 * Pass the current bucket brigade down to the next filter on the filter
 * stack.  The filter returns an apr_status_t value.  If the bottom-most
 * filter doesn't write to the network, then ::AP_NOBODY_WROTE is returned.
 * The caller relinquishes ownership of the brigade.
 * @param filter The next filter in the chain
 * @param bucket The current bucket brigade
 */
AP_DECLARE(apr_status_t) ap_pass_brigade(ap_filter_t *filter,
                                         apr_bucket_brigade *bucket);
--------------------------------------------------------------------

"The caller relinquishes ownership of the brigade."

This obviously differs from what some of our own filters are doing -- and
from my memory of past history.  It makes sense that it should be this
way, though I think at some point in the past we just guaranteed that the
core_output_filter always emptied the brigades it was passed so it
wouldn't have mattered until other filters that didn't behave that way
started getting inserted in front of c_o_f.

I'll keep digging.

Mime
View raw message