On Wed, Mar 23, 2022 at 02:04:49PM -0400, Sean Anderson wrote: > This annotates malloc and friends so that valgrind can track the heap. To > do this, we need to follow a few rules: > > * Call VALGRIND_MALLOCLIKE_BLOCK whenever we malloc something > * Call VALGRIND_FREELIKE_BLOCK whenever we free something (generally after > we have done our bookkeeping) > * Call VALGRIND_RESIZEINPLACE_BLOCK whenever we change the size of an > allocation. We don't record the original request size of a block, and > neither does valgrind. For this reason, we pretend that the old size of > the allocation was for 0 bytes. This marks the whole allocaton as > undefined, so in order to mark all bits correctly, we must make the whole > new allocation defined with VALGRIND_MAKE_MEM_DEFINED. This may cause us > to miss some invalid reads, but there is no way to detect these without > recording the original size of the allocation. > > In addition to the above, dlmalloc itself tends to make a lot of accesses > which we know are safe, but which would be unsafe outside of dlmalloc. For > this reason, we provide a suppression file which ignores errors ocurring in > dlmalloc.c > > Signed-off-by: Sean Anderson <[email protected]> > Reviewed-by: Simon Glass <[email protected]>
Applied to u-boot/master, thanks! -- Tom
signature.asc
Description: PGP signature

