@@ -184,6 +184,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;
}
@@ -132,3 +132,9 @@ TEST_CASE("unreasonable allocs should all fail", "[heap]")
TEST_ASSERT_NULL(test_malloc_wrapper(xPortGetFreeHeapSize() - 1));
+TEST_CASE("malloc(0) should return a NULL pointer", "[heap]")
+{
+ void *p;
+ p = malloc(0);
+ TEST_ASSERT(p == NULL);
+}