mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 18:47:41 +00:00
Kernel: Make PTYMultiplexer::open API OOM safe
This commit is contained in:
parent
f3f5a225b9
commit
77868abe6a
1 changed files with 4 additions and 2 deletions
|
@ -40,9 +40,11 @@ KResultOr<NonnullRefPtr<FileDescription>> PTYMultiplexer::open(int options)
|
||||||
if (m_freelist.is_empty())
|
if (m_freelist.is_empty())
|
||||||
return EBUSY;
|
return EBUSY;
|
||||||
auto master_index = m_freelist.take_last();
|
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());
|
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()) {
|
if (!description.is_error()) {
|
||||||
description.value()->set_rw_mode(options);
|
description.value()->set_rw_mode(options);
|
||||||
description.value()->set_file_flags(options);
|
description.value()->set_file_flags(options);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue