[U-Boot] Memset 0 in heap initialization?

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=e9bab09b8eac7c...

On 09.12.2010 17:14, Dirk Behme wrote:
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=e9bab09b8eac7c...
Any idea regarding this?
Thanks
Dirk

On Jan 17, 2011, at 11:17 PM, Dirk Behme wrote:
On 09.12.2010 17:14, Dirk Behme wrote:
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=e9bab09b8eac7c...
Any idea regarding this?
Part of this is because we define MORECORE_CLEARS 1 which does assume memory is zero'd out.
- k
participants (2)
-
Dirk Behme
-
Kumar Gala