diff --git a/src/core/libraries/kernel/memory.cpp b/src/core/libraries/kernel/memory.cpp index ddc556fcd..b0e910e3b 100644 --- a/src/core/libraries/kernel/memory.cpp +++ b/src/core/libraries/kernel/memory.cpp @@ -575,6 +575,12 @@ void* PS4_SYSV_ABI posix_mmap(void* addr, u64 len, s32 prot, s32 flags, s32 fd, "called addr = {}, len = {:#x}, prot = {:#x}, flags = {:#x}, fd = {}, phys_addr = {:#x}", fmt::ptr(addr), len, prot, flags, fd, phys_addr); + if (len == 0) { + // If length is 0, mmap returns EINVAL. + ErrSceToPosix(ORBIS_KERNEL_ERROR_EINVAL); + return reinterpret_cast(-1); + } + void* addr_out; auto* memory = Core::Memory::Instance(); const auto mem_prot = static_cast(prot);