MFV c3ccd112: Correct off-by-ones in free_exception of emergency buffer

Note, this has been broken since import in r227825.

PR:		https://github.com/pathscale/libcxxrt/issues/29
Reviewed by:	emaste (earlier version), kan (informally)
Obtained from:	Anton Rang
Relnotes:	yes
Sponsored by:	EMC / Isilon Storage Division
Differential Revision:	https://reviews.freebsd.org/D3733
This commit is contained in:
Conrad Meyer 2015-09-25 22:29:21 +00:00
parent 7fc0791608
commit 76ad56672b
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=288238

View File

@ -516,7 +516,7 @@ static void emergency_malloc_free(char *ptr)
break;
}
}
assert(buffer > 0 &&
assert(buffer >= 0 &&
"Trying to free something that is not an emergency buffer!");
// emergency_malloc() is expected to return 0-initialized data. We don't
// zero the buffer when allocating it, because the static buffers will
@ -556,7 +556,7 @@ static void free_exception(char *e)
{
// If this allocation is within the address range of the emergency buffer,
// don't call free() because it was not allocated with malloc()
if ((e > emergency_buffer) &&
if ((e >= emergency_buffer) &&
(e < (emergency_buffer + sizeof(emergency_buffer))))
{
emergency_malloc_free(e);