From 77868abe6a69c16f6ecd9d3aeb3eff158df32a11 Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Fri, 14 May 2021 04:15:05 -0700 Subject: [PATCH] Kernel: Make PTYMultiplexer::open API OOM safe --- Kernel/TTY/PTYMultiplexer.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Kernel/TTY/PTYMultiplexer.cpp b/Kernel/TTY/PTYMultiplexer.cpp index ae19e6f8ad..be5dc9fe6c 100644 --- a/Kernel/TTY/PTYMultiplexer.cpp +++ b/Kernel/TTY/PTYMultiplexer.cpp @@ -40,9 +40,11 @@ KResultOr> PTYMultiplexer::open(int options) if (m_freelist.is_empty()) return EBUSY; auto master_index = m_freelist.take_last(); - auto master = adopt_ref(*new MasterPTY(master_index)); + auto master = adopt_ref_if_nonnull(new MasterPTY(master_index)); + if (!master) + return ENOMEM; dbgln_if(PTMX_DEBUG, "PTYMultiplexer::open: Vending master {}", master->index()); - auto description = FileDescription::create(move(master)); + auto description = FileDescription::create(*master); if (!description.is_error()) { description.value()->set_rw_mode(options); description.value()->set_file_flags(options);