From bc35a6e445b59bd2fb0731a6e512b7271be85444 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Tue, 28 Feb 2023 19:08:41 -0500 Subject: [PATCH] kernel/vm: Prohibit offset from being < 0 in mmap. POSIX seems to be silent about whether this is permitted, but at least FreeBSD explicitly does not allow it. Fixes #16936. Change-Id: If6b23410ae88245e706df77d276234f4775654f9 --- src/system/kernel/vm/vm.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/system/kernel/vm/vm.cpp b/src/system/kernel/vm/vm.cpp index d318cdf078..88dc45ef28 100644 --- a/src/system/kernel/vm/vm.cpp +++ b/src/system/kernel/vm/vm.cpp @@ -941,6 +941,8 @@ map_backing_store(VMAddressSpace* addressSpace, VMCache* cache, off_t offset, #endif return B_BAD_VALUE; } + if (offset < 0) + return B_BAD_VALUE; uint32 allocationFlags = HEAP_DONT_WAIT_FOR_MEMORY | HEAP_DONT_LOCK_KERNEL_SPACE;