From ae5c1ebe7de85083d75893d9f0aac439f8d036d8 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sat, 9 Nov 2002 11:30:38 +0000
Subject: [PATCH] Don't call FD_ISSET on an invalid socket descriptor.

---
 src/sbbs3/mailsrvr.c | 3 ++-
 src/sbbs3/main.cpp   | 6 ++++--
 src/sbbs3/websrvr.c  | 3 ++-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index a1c395bd53..d38a6c53a3 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -3166,7 +3166,8 @@ void DLLCALL mail_server(void* arg)
 			}
 
 
-			if(FD_ISSET(server_socket,&socket_set)) {
+			if(server_socket!=INVALID_SOCKET
+				&& FD_ISSET(server_socket,&socket_set)) {
 
 				client_addr_len = sizeof(client_addr);
 				client_socket = accept(server_socket, (struct sockaddr *)&client_addr
diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 4f163d9679..a0d543c113 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -3765,10 +3765,12 @@ void DLLCALL bbs_thread(void* arg)
 
 		bool rlogin = false;
 
-		if(FD_ISSET(telnet_socket,&socket_set)) 
+		if(telnet_socket!=INVALID_SOCKET 
+			&& FD_ISSET(telnet_socket,&socket_set)) 
 			client_socket = accept_socket(telnet_socket, (struct sockaddr *)&client_addr
 	        	,&client_addr_len);
-		else if(rlogin_socket!=INVALID_SOCKET && FD_ISSET(rlogin_socket,&socket_set)) {
+		else if(rlogin_socket!=INVALID_SOCKET 
+			&& FD_ISSET(rlogin_socket,&socket_set)) {
 			client_socket = accept_socket(rlogin_socket, (struct sockaddr *)&client_addr
 	        	,&client_addr_len);
 			rlogin = true;
diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 673000ab6b..b0bd719de2 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -2346,7 +2346,8 @@ void DLLCALL web_server(void* arg)
 
 			client_addr_len = sizeof(client_addr);
 
-			if(FD_ISSET(server_socket,&socket_set)) 
+			if(server_socket!=INVALID_SOCKET
+				&& FD_ISSET(server_socket,&socket_set)) 
 				client_socket = accept(server_socket, (struct sockaddr *)&client_addr
 	        		,&client_addr_len);
 			else {
-- 
GitLab