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

Attachment: signature.asc
Description: PGP signature

Reply via email to