Cliff Woolley <[EMAIL PROTECTED]> writes:

> Okay, so this is a totally different problem.  Tangentially related at
> best.
> 
> Here's the situation:
> 
>  1) create a brigade in pool p (call it r->pool)
>  2) create an mmap in the same pool or a subpool
>       (note: it might have to be a subpool, but I'm not sure)
>  3) put the mmap in an mmap bucket
>  4) clear pool p
> 
> Because the mmap was created *after* the brigade and pool cleanups get run
> in LIFO order, #4 implies the following:
> 
>   4a) mmap_cleanup in mmap.c will munmap the region and set mm->mm to -1
>       (note: the -1 is what was *supposed* to save us here)
>   4b) brigade_cleanup will destroy the mmap bucket via mmap_destroy from
>       apr_buckets_mmap.c.
>   4c) mmap_destroy discovers it's the last remaining reference to the
>       mmap, and so calls apr_mmap_delete
>   4d) boom

What happens if we kill the cleanup on the apr_mmap_t when we create
an mmap bucket?

-- 
Jeff Trawick | [EMAIL PROTECTED]
Born in Roswell... married an alien...

Reply via email to