From 1d3b5d330dda7fb6732983d40e3e918b07aeeaf3 Mon Sep 17 00:00:00 2001 From: Andrew Kaster Date: Sun, 12 Jun 2022 23:11:43 -0600 Subject: [PATCH] Kernel: Tolerate cloning MAP_STACK regions that are PROT_NONE There's nothing stopping a userspace program from keeping a bunch of threads around with a custom signal stack in a suspended state with their normal thread stack mprotected to PROT_NONE. OpenJDK seems to do this, for example. --- Kernel/Memory/Region.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Kernel/Memory/Region.cpp b/Kernel/Memory/Region.cpp index 2ba28e17c2..d325a32f76 100644 --- a/Kernel/Memory/Region.cpp +++ b/Kernel/Memory/Region.cpp @@ -129,8 +129,6 @@ ErrorOr> Region::try_clone() m_range, move(vmobject_clone), m_offset_in_vmobject, move(clone_region_name), access(), m_cacheable ? Cacheable::Yes : Cacheable::No, m_shared)); if (m_stack) { - VERIFY(is_readable()); - VERIFY(is_writable()); VERIFY(vmobject().is_anonymous()); clone_region->set_stack(true); }