From: Chet Ramey Date: Wed, 17 Nov 2021 21:44:19 +0000 (-0500) Subject: Bash-5.1 patch 9: fix bash malloc implementation of malloc_usable_size X-Git-Tag: bash-5.2-alpha~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fed42742e0b33b358610bf62c7474f55e6465205;p=thirdparty%2Fbash.git Bash-5.1 patch 9: fix bash malloc implementation of malloc_usable_size --- diff --git a/lib/malloc/malloc.c b/lib/malloc/malloc.c index 439f8ef11..92e6efa52 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 10fde2eee..17586ff7f 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_ */