"Philippe M. Chiasson" <[EMAIL PROTECTED]> writes:
> my $pool;
> sub handler {
> my $r = shift;
> $pool ||= $r->pool; #XXX: Yes, bad bad bad, but still...
> APR::Table::make($pool, 10); #bam!
> }
>
> The problem in this case is that apache destroyed the request pool at
> the end of the first request. And we now have a valid $pool that now
> points to a freed pool. It's an incorrect usage of the API, I know,
> but the resulting segv isn't nice...
This is a problem with persistence, not "ownership", and affects the
entirety of mp2's object system. In other words, there's no reason to
single out pools in your example, the bug could just as easily been
my $r;
sub handler {
$r ||= shift;
my $pool = $r->pool; #bam!
}
"Fixing" this problem is certainly a challenge, but IMO not
worth worrying about for 2.0.
--
Joe Schaefer
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]