Kernel: Make LocalSocket factory APIs OOM safe

This commit is contained in:
Brian Gianforcaro 2021-05-13 00:06:09 -07:00 committed by Andreas Kling
parent 51ceb172b9
commit 9375f3dc09
Notes: sideshowbarker 2024-07-18 18:14:40 +09:00

View File

@ -33,12 +33,17 @@ void LocalSocket::for_each(Function<void(const LocalSocket&)> callback)
KResultOr<NonnullRefPtr<Socket>> 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<SocketPair> 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())