[U-Boot] [PATCH] dlmalloc: calloc: fix zeroing early allocations
trini at konsulko.com
Wed Oct 30 17:01:49 UTC 2019
On Fri, Oct 25, 2019 at 09:23:35PM +0200, Simon Goldschmidt wrote:
> When full malloc is enabled and SYS_MALLOC_F is also enabled, the simple
> pre-reloc heap is used before relocation. In this case, calloc() uses
> the MALLOC_ZERO macro to zero out the allocated memory. However, since
> this macro is specially crafted for the dlmalloc implementation, it
> does not always work for simple malloc.
> For example, when allocating 16 bytes via simple malloc, only the first
> 12 bytes get zeroed out. The last 4 bytes will remain untouched.
> This is a problem for DM drivers that are allocated before relocation:
> memory allocated via 'platdata_auto_alloc_size' might not be set to
> zero, resulting in bogus behaviour.
> To fix this, use 'memset' instead of 'MALLOC_ZERO' to zero out memory
> that compes from simple malloc.
> Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt at gmail.com>
Reviewed-by: Tom Rini <trini at konsulko.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 833 bytes
Desc: not available
More information about the U-Boot