From: Kejun Li <likejun6@huawei.com>

Date: Mon, 22 Mar 2021 14:03:10 +0800

Subject: [PATCH] malloc: Add check to avoid dereference NULL pointer.

 

info = alloc_find_lowest() may return NULL, should check before

dereference it to avoid potential coredump.

 

Signed-off-by: Kejun Li <likejun6@huawei.com>

---

src/malloc.c | 10 ++++++----

1 file changed, 6 insertions(+), 4 deletions(-)

 

diff --git a/src/malloc.c b/src/malloc.c index 3733855..d355b77 100644

--- a/src/malloc.c

+++ b/src/malloc.c

@@ -544,10 +544,12 @@ malloc_prepboot(void)

 

     // Clear unused f-seg ram.

     struct allocinfo_s *info = alloc_find_lowest(&ZoneFSeg);

-    u32 size = info->range_end - info->range_start;

-    memset(memremap(info->range_start, size), 0, size);

-    dprintf(1, "Space available for UMB: %x-%x, %x-%x\n"

-            , RomEnd, base, info->range_start, info->range_end);

+    if (info) {

+        u32 size = info->range_end - info->range_start;

+        memset(memremap(info->range_start, size), 0, size);

+        dprintf(1, "Space available for UMB: %x-%x, %x-%x\n"

+                , RomEnd, base, info->range_start, info->range_end);

+    }

 

     // Give back unused high ram.

     info = alloc_find_lowest(&ZoneHigh);

--

2.19.1