From 858fff979a2836d1b92e57ea8a0a5b21d8336245 Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Thu, 13 May 2021 01:24:44 -0700 Subject: [PATCH] Kernel: Make IPv4Socket::create API for SOCK_RAW OOM safe --- Kernel/Net/IPv4Socket.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Kernel/Net/IPv4Socket.cpp b/Kernel/Net/IPv4Socket.cpp index 728b4b1c37..c8ebed1ae7 100644 --- a/Kernel/Net/IPv4Socket.cpp +++ b/Kernel/Net/IPv4Socket.cpp @@ -44,8 +44,12 @@ KResultOr> IPv4Socket::create(int type, int protocol) } if (type == SOCK_DGRAM) return UDPSocket::create(protocol); - if (type == SOCK_RAW) - return adopt_ref(*new IPv4Socket(type, protocol)); + if (type == SOCK_RAW) { + auto raw_socket = adopt_ref_if_nonnull(new IPv4Socket(type, protocol)); + if (raw_socket) + return raw_socket.release_nonnull(); + return ENOMEM; + } return EINVAL; }