diff --git a/lib/malloc/malloc.c b/lib/malloc/malloc.c index 439f8ef1..92e6efa5 100644 --- a/lib/malloc/malloc.c +++ b/lib/malloc/malloc.c @@ -1286,13 +1286,12 @@ malloc_usable_size (mem) p = (union mhead *) ap - 1; } - /* XXX - should we return 0 if ISFREE? */ - maxbytes = binsize(p->mh_index); - - /* So the usable size is the maximum number of bytes in the bin less the - malloc overhead */ - maxbytes -= MOVERHEAD + MSLOP; - return (maxbytes); + /* return 0 if ISFREE */ + if (p->mh_alloc == ISFREE) + return 0; + + /* Since we use bounds checking, the usable size is the last requested size. */ + return (p->mh_nbytes); } #if !defined (NO_VALLOC) diff --git a/patchlevel.h b/patchlevel.h index 10fde2ee..17586ff7 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -25,6 +25,6 @@ regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh looks for to find the patch level (for the sccs version string). */ -#define PATCHLEVEL 8 +#define PATCHLEVEL 9 #endif /* _PATCHLEVEL_H_ */