From 52ebac9c6212556df1a593da2c018f57d44c8047 Mon Sep 17 00:00:00 2001 From: Guillaume Souchere Date: Fri, 12 Apr 2024 12:21:13 +0200 Subject: [PATCH] fix(heap): Loop break on failed alloc don't check for heaps_array != NULL in the loop. The check is done after the loop since it is allowed for the allocation to fail until finding aa ssuitable heap. --- components/heap/heap_caps_init.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/components/heap/heap_caps_init.c b/components/heap/heap_caps_init.c index 264e1bf0f1..a096471e6c 100644 --- a/components/heap/heap_caps_init.c +++ b/components/heap/heap_caps_init.c @@ -137,15 +137,14 @@ void heap_caps_init(void) * is done by the top level API heap_caps_malloc(). So we need to add it manually * after successful allocation. Allocate extra 4 bytes for that purpose. */ heaps_array = multi_heap_malloc(temp_heaps[i].heap, MULTI_HEAP_ADD_BLOCK_OWNER_SIZE(sizeof(heap_t) * num_heaps)); - assert(heaps_array != NULL); - MULTI_HEAP_SET_BLOCK_OWNER(heaps_array); - heaps_array = (heap_t *)MULTI_HEAP_ADD_BLOCK_OWNER_OFFSET(heaps_array); if (heaps_array != NULL) { break; } } } assert(heaps_array != NULL); /* if NULL, there's not enough free startup heap space */ + MULTI_HEAP_SET_BLOCK_OWNER(heaps_array); + heaps_array = (heap_t *)MULTI_HEAP_ADD_BLOCK_OWNER_OFFSET(heaps_array); memcpy(heaps_array, temp_heaps, sizeof(heap_t)*num_heaps);