[PATCH v3 2/3] malloc: Annotate allocator for valgrind

Tom Rini trini at konsulko.com
Mon Apr 11 16:17:25 CEST 2022


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 <seanga2 at gmail.com>
> Reviewed-by: Simon Glass <sjg at chromium.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20220411/e8175598/attachment.sig>


More information about the U-Boot mailing list