On Wed, Feb 18, 2009 at 11:39:02AM -0600, Nicolas Williams wrote:
> On Sun, Feb 15, 2009 at 01:21:28AM -0500, Glenn Fowler wrote:
> > ast provides its own malloc/free, and those calls are mapped
> > to _ast_malloc/_ast_free in the ksh/ast code for opensolaris builds
> > so that call to free() in the stack trace was not done directly by
> > any ksh/ast code
> 
> I believe this is a bad idea.  On Solaris it'd be best to use the global
> malloc()/free() from libc (or interposed via pre-loading).
> 
> Rationales:
> 
>  - you'll end up with two allocators, which means...
>  - ...you need to be real sure that some allocation won't be free()ed by
>    the wrong allocator, and...
>  - you need to make sure no more than one allocator uses brk()/sbrk();

Again, this is not a problem, as long as:

        1.  neither sbrk() user assumes that consecutive calls return
            consecutive addresses,
        2.  no-one calls brk() to back up the break.

Cheers,
- jonathan

>  - finally, you also prevent use of pre-loaded alternative allocators.

The rest of this is accurate.

Cheers,
- jonathan


Reply via email to