[malloc] Avoid false positive warnings from valgrind
authorMichael Brown <mcb30@ipxe.org>
Mon, 4 Sep 2017 13:00:32 +0000 (14:00 +0100)
committerMichael Brown <mcb30@ipxe.org>
Mon, 4 Sep 2017 13:09:17 +0000 (14:09 +0100)
commit42eedb04c1ad71548043c33ef1996dfe8e524996
treefa116cf39c744219ce2690deb830fcb1721ec5c3
parent75acb3c775544b6ecc4bfb1bba633717c8ec9394
[malloc] Avoid false positive warnings from valgrind

Calling discard_cache() is likely to result in a call to
free_memblock(), which will call valgrind_make_blocks_noaccess()
before returning.  This causes valgrind to report an invalid read on
the next iteration through the loop in alloc_memblock().

Fix by explicitly calling valgrind_make_blocks_defined() after
discard_cache() returns.  Also call valgrind_make_blocks_noaccess()
before calling discard_cache(), to guard against free list corruption
while executing cache discarders.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/core/malloc.c