Skip to content
  • Simon Goldschmidt's avatar
    dlmalloc: calloc: fix zeroing early allocations · bb71a2d9
    Simon Goldschmidt authored and Tom Rini's avatar Tom Rini committed
    
    
    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: default avatarSimon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
    Reviewed-by: default avatarTom Rini <trini@konsulko.com>
    bb71a2d9