From 1b8012e5c7190029f531d55834ad8be04e131667 Mon Sep 17 00:00:00 2001 From: Rummskartoffel Date: Sat, 8 Jan 2022 21:34:19 +0100 Subject: [PATCH] UserspaceEmulator: Fail with EINVAL for mmap with size 0 This is the behaviour specified by POSIX and also the behaviour of the real kernel, so let's follow that while emulating. --- Userland/DevTools/UserspaceEmulator/Emulator_syscalls.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Userland/DevTools/UserspaceEmulator/Emulator_syscalls.cpp b/Userland/DevTools/UserspaceEmulator/Emulator_syscalls.cpp index 442efb2cbf..adba1a8faf 100644 --- a/Userland/DevTools/UserspaceEmulator/Emulator_syscalls.cpp +++ b/Userland/DevTools/UserspaceEmulator/Emulator_syscalls.cpp @@ -868,6 +868,9 @@ u32 Emulator::virt$mmap(u32 params_addr) mmu().copy_from_vm(¶ms, params_addr, sizeof(params)); params.alignment = params.alignment ? params.alignment : PAGE_SIZE; + if (params.size == 0) + return -EINVAL; + u32 requested_size = round_up_to_power_of_two(params.size, PAGE_SIZE); FlatPtr final_address;