X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=common%2Fdlmalloc.c;h=2276532da7a8441c500c39b1716e23a2806a8c21;hb=000b6dc6edfcb83c4fff9376f9a2a4af67f3fc83;hp=ca088a17d1596fc192be4cd3dc12b9b2ab2a411c;hpb=521af04d853361b49344b61892eb0618f9f713c5;p=oweals%2Fu-boot.git diff --git a/common/dlmalloc.c b/common/dlmalloc.c index ca088a17d1..2276532da7 100644 --- a/common/dlmalloc.c +++ b/common/dlmalloc.c @@ -1515,18 +1515,13 @@ void *sbrk(ptrdiff_t increment) ulong new = old + increment; if ((new < mem_malloc_start) || (new > mem_malloc_end)) - return NULL; + return (void *)MORECORE_FAILURE; mem_malloc_brk = new; return (void *)old; } -#ifndef CONFIG_X86 -/* - * x86 boards use a slightly different init sequence thus they implement - * their own version of mem_malloc_init() - */ void mem_malloc_init(ulong start, ulong size) { mem_malloc_start = start; @@ -1535,7 +1530,6 @@ void mem_malloc_init(ulong start, ulong size) memset((void *)mem_malloc_start, 0, size); } -#endif /* field-extraction macros */ @@ -2185,6 +2179,12 @@ Void_t* mALLOc(bytes) size_t bytes; INTERNAL_SIZE_T nb; + /* check if mem_malloc_init() was run */ + if ((mem_malloc_start == 0) && (mem_malloc_end == 0)) { + /* not initialized yet */ + return 0; + } + if ((long)bytes < 0) return 0; nb = request2size(bytes); /* padded request size; */