From f945d7c3589a85f29975f104d88908c4990dd0f0 Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Thu, 28 May 2020 17:46:24 +0300 Subject: [PATCH] Kernel: Always require read access when mmaping a file POSIX says, "The file descriptor fildes shall have been opened with read permission, regardless of the protection options specified." --- Kernel/Process.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index 7a4019f373..d5dbc4ff1b 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -430,7 +430,8 @@ void* Process::sys$mmap(const Syscall::SC_mmap_params* user_params) return (void*)-EBADF; if (description->is_directory()) return (void*)-ENODEV; - if ((prot & PROT_READ) && !description->is_readable()) + // Require read access even when read protection is not requested. + if (!description->is_readable()) return (void*)-EACCES; if (map_shared) { if ((prot & PROT_WRITE) && !description->is_writable())