From 331fc532c3486ac9433fb31858c437a6b3b26d45 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 18 Oct 2000 20:16:03 +0000
Subject: [PATCH] Fixed socket leak.

---
 src/sbbs3/ftpsrvr.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index 73f183ff89..6010165b7b 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -816,6 +816,9 @@ static void filexfer(SOCKADDR_IN* addr, SOCKET ctrl_sock, SOCKET pasv_sock, SOCK
 	}
 	*inprogress=TRUE;
 
+	if(*data_sock!=INVALID_SOCKET)
+		close_socket(data_sock,__LINE__);
+
 	if(pasv_sock==INVALID_SOCKET) {	/* !PASV */
 
 		if((*data_sock=socket(AF_INET, SOCK_STREAM, IPPROTO_IP)) == INVALID_SOCKET) {
@@ -846,6 +849,7 @@ static void filexfer(SOCKADDR_IN* addr, SOCKET ctrl_sock, SOCKET pasv_sock, SOCK
 			if(tmpfile)
 				remove(filename);
 			*inprogress=FALSE;
+			close_socket(data_sock,__LINE__);
 			return;
 		}
 
@@ -858,6 +862,7 @@ static void filexfer(SOCKADDR_IN* addr, SOCKET ctrl_sock, SOCKET pasv_sock, SOCK
 			if(tmpfile)
 				remove(filename);
 			*inprogress=FALSE;
+			close_socket(data_sock,__LINE__);
 			return;
 		}
 		if(startup->options&FTP_OPT_DEBUG_DATA)
-- 
GitLab