Переглянути джерело

LibC: Make malloc(0) return a non-null pointer

Legally we could just return a null pointer, however returning a
pointer other than the null pointer is more compatible with
improperly written software that assumes that a null pointer means
allocation failure.
Gunnar Beutner 4 роки тому
батько
коміт
017da44ac2
1 змінених файлів з 5 додано та 2 видалено
  1. 5 2
      Userland/Libraries/LibC/malloc.cpp

+ 5 - 2
Userland/Libraries/LibC/malloc.cpp

@@ -162,8 +162,11 @@ static void* malloc_impl(size_t size, CallerWillInitializeMemory caller_will_ini
     if (s_log_malloc)
         dbgln("LibC: malloc({})", size);
 
-    if (!size)
-        return nullptr;
+    if (!size) {
+        // Legally we could just return a null pointer here, but this is more
+        // compatible with existing software.
+        size = 1;
+    }
 
     g_malloc_stats.number_of_malloc_calls++;