From af0e52ca54959dc509c12343c7998f50082623f7 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 13 Feb 2021 01:29:28 +0100 Subject: [PATCH] Kernel: Don't assert on sys$setsockopt() with unexpected level Just error out with ENOPROTOOPT instead. Found by fuzz-syscalls. :^) --- Kernel/Net/Socket.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Kernel/Net/Socket.cpp b/Kernel/Net/Socket.cpp index dd581fe84f..9456a48807 100644 --- a/Kernel/Net/Socket.cpp +++ b/Kernel/Net/Socket.cpp @@ -99,6 +99,8 @@ KResult Socket::queue_connection_from(NonnullRefPtr peer) KResult Socket::setsockopt(int level, int option, Userspace user_value, socklen_t user_value_size) { + if (level != SOL_SOCKET) + return ENOPROTOOPT; ASSERT(level == SOL_SOCKET); switch (option) { case SO_SNDTIMEO: