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>