From cb9d9846e0bc23df99488ceb87ff75a14295de7e Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 24 Feb 2020 13:33:10 +0100 Subject: [PATCH] Kernel: Fail with ENOMEM if there's insufficient VM for a SharedBuffer --- Kernel/SharedBuffer.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Kernel/SharedBuffer.cpp b/Kernel/SharedBuffer.cpp index 34594b2c86..01f8426041 100644 --- a/Kernel/SharedBuffer.cpp +++ b/Kernel/SharedBuffer.cpp @@ -88,6 +88,8 @@ void* SharedBuffer::ref_for_process_and_get_address(Process& process) if (ref.pid == process.pid()) { if (!ref.region) { auto* region = process.allocate_region_with_vmobject(VirtualAddress(), size(), m_vmobject, 0, "SharedBuffer", PROT_READ | (m_writable ? PROT_WRITE : 0)); + if (!region) + return (void*)-ENOMEM; ref.region = region->make_weak_ptr(); ref.region->set_shared(true); }