
4 May
2021
4 May
'21
5:26 p.m.
Hi Sean,
On Sun, 2 May 2021 at 20:55, Sean Anderson seanga2@gmail.com wrote:
This fixes memory being cleared after releasing it. Instead, clear memory before releasing it. In addition, suppress valgrind warnings about writing to free'd memory.
Signed-off-by: Sean Anderson seanga2@gmail.com
common/dlmalloc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/common/dlmalloc.c b/common/dlmalloc.c index 05c8fd87e7..ea51bdf6a6 100644 --- a/common/dlmalloc.c +++ b/common/dlmalloc.c @@ -592,11 +592,13 @@ void *sbrk(ptrdiff_t increment) ulong new = old + increment;
/*
* if we are giving memory back make sure we clear it out since
* we set MORECORE_CLEARS to 1
* if we are allocating memory make sure we clear it out since we set
* MORECORE_CLEARS to 1 */
if (increment < 0)
memset((void *)new, 0, -increment);
if (increment > 0) {
VALGRIND_MAKE_MEM_UNDEFINED(old, increment);
memset((void *)old, 0, increment);
}
Can you explain this a bit more? What is the difference?
Do you need the cast?
if ((new < mem_malloc_start) || (new > mem_malloc_end)) return (void *)MORECORE_FAILURE;
-- 2.31.0
Regards, Simon