multi_heap: ensure that malloc(0) return NULL pointer in any poisoning configuration

This commit is contained in:
Felipe Neves 2020-03-27 14:50:42 -03:00
parent 94e2981d17
commit 8e55efaa2f
2 changed files with 10 additions and 0 deletions

View file

@ -175,6 +175,10 @@ static bool verify_fill_pattern(void *data, size_t size, bool print_errors, bool
void *multi_heap_malloc(multi_heap_handle_t heap, size_t size)
{
if (!size) {
return NULL;
}
if(size > SIZE_MAX - POISON_OVERHEAD) {
return NULL;
}

View file

@ -113,3 +113,9 @@ TEST_CASE("unreasonable allocs should all fail", "[heap]")
TEST_ASSERT_NULL(malloc(xPortGetFreeHeapSize() - 1));
}
TEST_CASE("malloc(0) should return a NULL pointer", "[heap]")
{
void *p;
p = malloc(0);
TEST_ASSERT(p == NULL);
}