Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Aug 1998 11:51:15 +1000 (EST)
From:      "Andrew Reilly" <reilly@zeta.org.au>
To:        dg@root.com
Cc:        bde@zeta.org.au, wollman@khavrinen.lcs.mit.edu, freebsd-current@FreeBSD.ORG
Subject:   Re: memory leaks in libc 
Message-ID:  <19980807015115.10203.qmail@gurney.reilly.home>
In-Reply-To: <199808070142.SAA10235@implode.root.com>

next in thread | previous in thread | raw e-mail | index | archive | help
David Greenman said:
>>I always thought it odd that there were no implimentations of
>>free() that were able to identify whether the pointer that they
>>were passed was something that malloc had handed out previously.
>>Surely malloc's data structures must have something to say about
>>it.
>>
>>If free() could know this, then things like setenv could just go
>>ahead and call free(), and if the previous object had not been
>>malloc'ed then nothing would happen.
> 
>    If the string were malloced by the program (as opposed to the library),
> then it won't be expecting setenv() to do a hidden free(). This could lead
> to random memory corruption if the process modifies the freed memory.
>    In all of this dicussion, I can't stop thinking that the cure sounds far
> worse than the disease.

And yet it is a problem that I've never read a really good solution
for.  I read a comment on comp.lang.eiffel recently, about BeOS. 
Apparently they (the BeOS designers) have devised a protocol that goes
by the name "wean/adopt", that is presumably about passing "ownership"
of dynamically allocated objects around.

Anyone know any details?  Is it something that can be adopted here?

-- 
Andrew


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980807015115.10203.qmail>