Dear Kumar Gala,

In message <1289868103-7702-1-git-send-email-ga...@kernel.crashing.org> you 
wrote:
> Since we set #define MORECORE_CLEARS 1, the code assumes 'sbrk' always
> returns zero'd out memory.  However since its possible that free()
> returns memory back to sbrk() via malloc_trim we could possible get
> non-zero'd memory from sbrk().  This is a problem for when code might
> call calloc() and expect the memory to have been zero'd out.
> 
> There are two possible solutions to this problem.
> 1. change #define MORECORE_CLEARS 0
> 2. memset to zero memory returned to sbrk.
> 
> We go with the second since the sbrk being called to free up memory
> should be pretty rare.
> 
> The following code problems an example test to show the issue.  This
> test code was inserted right after the call to mem_malloc_init().
> 
> ...
>        u8 *p2;
>        int i;
> 
>        printf("MALLOC TEST\n");
>        p1 = malloc(135176);
>        printf("P1 = %p\n", p1);
>        memset(p1, 0xab, 135176);
> 
>        free(p1);
>        p2 = calloc(4097, 1);
>        printf("P2 = %p %p\n", p2, p2 + 4097);
> 
>        for (i = 0; i < 4097; i++) {
>              if (p2[i] != 0)
>                      printf("miscompare at byte %d got %x\n", i, p2[i]);
> 
>        free(p2);
>        printf("END MALLOC TEST\n\n");
> ...
> 
> Signed-off-by: Kumar Gala <ga...@kernel.crashing.org>
> Tested-by: Wolfgang Denk <w...@denx.de>
> ---
> * Fix commit message screw up
> 
>  common/dlmalloc.c |    7 +++++++
>  1 files changed, 7 insertions(+), 0 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
Memories of you remind me of you.                   - Karl Lehenbauer
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to