Procházet zdrojové kódy

LibC: Don't leak memory for realloc(p, 0)

Previously we'd leak memory when the user called realloc(p, 0). Instead
this call should behave as if the user had called free(p).
Gunnar Beutner před 4 roky
rodič
revize
ea33e9647b
1 změnil soubory, kde provedl 3 přidání a 1 odebrání
  1. 3 1
      Userland/Libraries/LibC/malloc.cpp

+ 3 - 1
Userland/Libraries/LibC/malloc.cpp

@@ -437,8 +437,10 @@ void* realloc(void* ptr, size_t size)
 {
     if (!ptr)
         return malloc(size);
-    if (!size)
+    if (!size) {
+        free(ptr);
         return nullptr;
+    }
 
     Threading::Locker locker(malloc_lock());
     auto existing_allocation_size = malloc_size(ptr);