From ea33e9647bec2d549b6a1a60fa9f4caf315aca92 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Sat, 29 May 2021 14:46:10 +0200 Subject: [PATCH] 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). --- Userland/Libraries/LibC/malloc.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibC/malloc.cpp b/Userland/Libraries/LibC/malloc.cpp index 7e57612db5..3331537293 100644 --- a/Userland/Libraries/LibC/malloc.cpp +++ b/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);