瀏覽代碼

Kernel: listen() should fail with EINVAL for already-connected sockets

This according to POSIX.
Andreas Kling 5 年之前
父節點
當前提交
23a2e84873
共有 1 個文件被更改,包括 2 次插入0 次删除
  1. 2 0
      Kernel/Process.cpp

+ 2 - 0
Kernel/Process.cpp

@@ -2438,6 +2438,8 @@ int Process::sys$listen(int sockfd, int backlog)
     if (!description->is_socket())
     if (!description->is_socket())
         return -ENOTSOCK;
         return -ENOTSOCK;
     auto& socket = *description->socket();
     auto& socket = *description->socket();
+    if (socket.is_connected())
+        return -EINVAL;
     return socket.listen(backlog);
     return socket.listen(backlog);
 }
 }