From 9375f3dc094fda351a7bb5bc6f78438b73beffdb Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Thu, 13 May 2021 00:06:09 -0700 Subject: [PATCH] Kernel: Make LocalSocket factory APIs OOM safe --- Kernel/Net/LocalSocket.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Kernel/Net/LocalSocket.cpp b/Kernel/Net/LocalSocket.cpp index 5a38760c68..fe06dfe78c 100644 --- a/Kernel/Net/LocalSocket.cpp +++ b/Kernel/Net/LocalSocket.cpp @@ -33,12 +33,17 @@ void LocalSocket::for_each(Function callback) KResultOr> LocalSocket::create(int type) { - return adopt_ref(*new LocalSocket(type)); + auto socket = adopt_ref_if_nonnull(new LocalSocket(type)); + if (socket) + return socket.release_nonnull(); + return ENOMEM; } KResultOr LocalSocket::create_connected_pair(int type) { - auto socket = adopt_ref(*new LocalSocket(type)); + auto socket = adopt_ref_if_nonnull(new LocalSocket(type)); + if (!socket) + return ENOMEM; auto description1_result = FileDescription::create(*socket); if (description1_result.is_error())