From 14a202f011d70c9b7ba04af93c760c616c12675d Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 23 May 2019 15:39:52 +0200 Subject: [PATCH] Kernel: getpeername() should fail with ENOTCONN for non-connected sockets. --- Kernel/Process.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index 32555f5ea5..4a4c821d74 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -2266,6 +2266,9 @@ int Process::sys$getpeername(int sockfd, sockaddr* addr, socklen_t* addrlen) auto& socket = *descriptor->socket(); + if (!socket.is_connected()) + return -ENOTCONN; + if (!socket.get_peer_address(addr, addrlen)) return -EINVAL; // FIXME: Should this be another error? I'm not sure.