From 2ee1731966427b8ce17246a4f8254f91f885ea98 Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Fri, 30 Apr 2021 03:18:10 -0700 Subject: [PATCH] Kernel: Harden Process Vector usage against OOM. --- Kernel/Process.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index c9ab5377f6..d9df7ba326 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -146,7 +146,10 @@ RefPtr Process::create_user_process(RefPtr& first_thread, const auto process = adopt_ref(*new Process(first_thread, parts.take_last(), uid, gid, parent_pid, false, move(cwd), nullptr, tty)); if (!first_thread) return {}; - process->m_fds.resize(m_max_open_file_descriptors); + if (!process->m_fds.try_resize(m_max_open_file_descriptors)) { + first_thread = nullptr; + return {}; + } auto& device_to_use_as_tty = tty ? (CharacterDevice&)*tty : NullDevice::the(); auto description = device_to_use_as_tty.open(O_RDWR).value(); process->m_fds[0].set(*description);