delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mailnull set sender to djgpp-workers-bounces using -f |
Message-ID: | <3C79833E.7282AF8D@yahoo.com> |
Date: | Sun, 24 Feb 2002 19:20:14 -0500 |
From: | CBFalconer <cbfalconer AT yahoo DOT com> |
Organization: | Ched Research |
X-Mailer: | Mozilla 4.75 [en] (Win98; U) |
X-Accept-Language: | en |
MIME-Version: | 1.0 |
To: | djgpp-workers AT delorie DOT com |
Subject: | Re: Malloc/free DJGPP code |
References: | <10202201713 DOT AA23034 AT clio DOT rice DOT edu> <3C7919F2 DOT 96FFA97D AT yahoo DOT com> <200202241740 DOT g1OHeOd19302 AT envy DOT delorie DOT com> |
Reply-To: | djgpp-workers AT delorie DOT com |
DJ Delorie wrote: > > > This could all be cured by a semi-portable implementation of, say, > > "fakesbrk" which will return a repeatable set of addresses under > > the same circumstances. It might actually malloc a large block > > which contains those addresses to be faked. But how can it ensure > > that a certain range is available to any degree of certainty, or > > even of probability? > > Put a huge uninitialized static array in your program and use it for > sbrk. It will always be in the same virtual address. Do you see any problem with the following? I was surprised to read that sbrk returns -1 for failure. This way the test program can fool with it by making small silly allocations to foul the sequence. I'll worry about going backwards later. #include "fakesbrk.h" enum {FAKESIZE = 1234567}; char fakearea[FAKESIZE]; /* 1------------------1 */ /* we can fool with this to generate test cases */ void *fakesbrk(int delta) { static char *unused = fakearea; char *next, *p; next = unused + delta; if ((unsigned) next > FAKESIZE) return (void *)-1; else { p = unused; unused = next; return (void *)p; } } /* fakesbrk */ -- Chuck F (cbfalconer AT yahoo DOT com) (cbfalconer AT XXXXworldnet DOT att DOT net) Available for consulting/temporary embedded and systems. (Remove "XXXX" from reply address. yahoo works unmodified) mailto:uce AT ftc DOT gov (for spambots to harvest)
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |