Skip to contentSkip to conversation

Memset 0 in heap initialization?

U-Boot Dirk Behme 2 participants 3 messages Dec 9, 2010 – Jan 18, 2011

lore
Share & tools
lore

Dirk Behme

author
#0 lore raw

In common/dlmalloc.c in the heap initialization mem_malloc_init() [1] it looks like the whole heap is initialized with zero:

memset((void *)mem_malloc_start, 0, size);

What's the reason for doing this? I know that the .bss segment has to be zeroed at system start up, but why doing this for the heap, too? It was my understanding that one could make no assumption about the initial content of memory returned by malloc() (?).

Sorry if I miss the obvious ;)

Thanks

Dirk

[1]
http://git.denx.de/?p=u-boot.git;a=blob;f=common/dlmalloc.c;h=e9bab09b8eac7c0ec4900a3685f15a807b448c31;hb=refs/heads/master#l1529

author
#1 lore raw
Quoted 11 lines · Dirk Behme

In common/dlmalloc.c in the heap initialization mem_malloc_init() [1] it looks like the whole heap is initialized with zero:

memset((void *)mem_malloc_start, 0, size);

What's the reason for doing this? I know that the .bss segment has to be zeroed at system start up, but why doing this for the heap, too? It was my understanding that one could make no assumption about the initial content of memory returned by malloc() (?).

Quoted 8 lines

Sorry if I miss the obvious ;)

Thanks

Dirk

[1]
http://git.denx.de/?p=u-boot.git;a=blob;f=common/dlmalloc.c;h=e9bab09b8eac7c0ec4900a3685f15a807b448c31;hb=refs/heads/master#l1529

Any idea regarding this?

Thanks

Dirk

#2 lore raw
Quoted 14 lines · Dirk Behme
Quoted 13 lines · Dirk Behme

In common/dlmalloc.c in the heap initialization mem_malloc_init() [1] it looks like the whole heap is initialized with zero:

memset((void *)mem_malloc_start, 0, size);

What's the reason for doing this? I know that the .bss segment has to be zeroed at system start up, but why doing this for the heap, too? It was my understanding that one could make no assumption about the initial content of memory returned by malloc() (?).

Sorry if I miss the obvious ;)

Quoted 8 lines
Quoted 6 lines

Thanks

Dirk

[1]
http://git.denx.de/?p=u-boot.git;a=blob;f=common/dlmalloc.c;h=e9bab09b8eac7c0ec4900a3685f15a807b448c31;hb=refs/heads/master#l1529

Any idea regarding this?

Part of this is because we define MORECORE_CLEARS 1 which does assume memory is zero'd out.

- k