From 44b3faaa198798c44a9f3bd9a98e5ccda2252fe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Fri, 10 Nov 2006 09:32:11 +0000 Subject: [PATCH] socket_accept() now checks for SO_ACCEPTCONN before calling the protocol's accept function to enforce valid codepaths (you need to call listen() before accept()). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19247 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/network/stack/net_socket.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/add-ons/kernel/network/stack/net_socket.cpp b/src/add-ons/kernel/network/stack/net_socket.cpp index 26db50dc71..66fd82f33d 100644 --- a/src/add-ons/kernel/network/stack/net_socket.cpp +++ b/src/add-ons/kernel/network/stack/net_socket.cpp @@ -389,6 +389,9 @@ int socket_accept(net_socket *socket, struct sockaddr *address, socklen_t *_addressLength, net_socket **_acceptedSocket) { + if ((socket->options & SO_ACCEPTCONN) == 0) + return B_BAD_VALUE; + net_socket *accepted; status_t status = socket->first_info->accept(socket->first_protocol, &accepted);