Date: Thu, 18 Sep 1997 13:12:18 -0600 (MDT) From: Nate Williams <nate@mt.sri.com> To: Poul-Henning Kamp <phk@critter.freebsd.dk> Cc: Nate Williams <nate@mt.sri.com>, Graham Wheeler <gram@cdsec.com>, hackers@freebsd.org Subject: Re: Bug in malloc/free (was: Memory leak in getservbyXXX?) Message-ID: <199709181912.NAA13699@rocky.mt.sri.com> In-Reply-To: <10897.874608673@critter.freebsd.dk> References: <199709181811.MAA13376@rocky.mt.sri.com> <10897.874608673@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
[ Bugs in phk-malloc ] > Anyway, if you think so: do like so many others have done, look at the > source for phkmalloc.c and try to spot the error. I can't. I know, and I don't expect you to find any. But, it doesn't mean there isn't one. :) [ 'hangs' in malloc due to memory over-write causing circular lists ] > >> This is about the only way you could get it to loop I think. That means > >> that somebody wrote to memory malloc hadn't passed them (ie: your code). > > > >Yikes, this would be 'Hard to Do', even by design (ie; self-modifying > >code). But, stranger things have happened, especially with dealing with > >malloc/free. > > No, all you have to do is to make each allocation have it's own set of > pages, munmap them when free is called and never use those pages again. > > You run out of address space really fast, and it is slow, but it works. It's slow, but how would it cause malloc to hang? > >> This would indicate a bug of the class where memory is written to after > >> being free()'ed, a kind of bug which phkmalloc makes no attempt to catch. > > > >This is a 'hard problem'. > > Not really, there is a simple way to find it I belive. Hack phkmalloc > the following way: Add a nontrivial checksum field to the freechunk > structure. Check before use, and update it after changes. Should > nail it in no time. Cool, sounds like another option *YOU* should implement. *grin* (just kidding, just kidding.....) Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709181912.NAA13699>