diff --git a/Userland/Libraries/LibC/malloc.cpp b/Userland/Libraries/LibC/malloc.cpp index 77a61ee1bb..9c412c55cf 100644 --- a/Userland/Libraries/LibC/malloc.cpp +++ b/Userland/Libraries/LibC/malloc.cpp @@ -411,6 +411,10 @@ static void free_impl(void* ptr) void* calloc(size_t count, size_t size) { + if (Checked::multiplication_would_overflow(count, size)) { + errno = ENOMEM; + return nullptr; + } size_t new_size = count * size; auto* ptr = malloc_impl(new_size, CallerWillInitializeMemory::Yes); if (ptr)