From c216eece9e09e8d3cd74b5c1001f45da0296911c Mon Sep 17 00:00:00 2001 From: David CARLIER Date: Sun, 21 May 2023 15:24:28 +0100 Subject: [PATCH] network close descriptors on socket creation failure. --- src/backends/unix/network.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backends/unix/network.c b/src/backends/unix/network.c index afeebd3e..fd01966f 100644 --- a/src/backends/unix/network.c +++ b/src/backends/unix/network.c @@ -864,6 +864,7 @@ NET_Socket(char *net_interface, int port, netsrc_t type, int family) if (ioctl(newsocket, FIONBIO, (char *)&_true) == -1) { Com_Printf("NET_Socket: ioctl FIONBIO: %s\n", strerror(errno)); + close(newsocket); continue; } @@ -876,6 +877,7 @@ NET_Socket(char *net_interface, int port, netsrc_t type, int family) Com_Printf("ERROR: NET_Socket: setsockopt SO_BROADCAST:%s\n", NET_ErrorString()); freeaddrinfo(res); + close(newsocket); return 0; } } @@ -887,6 +889,7 @@ NET_Socket(char *net_interface, int port, netsrc_t type, int family) Com_Printf("ERROR: NET_Socket: setsockopt SO_REUSEADDR:%s\n", NET_ErrorString()); freeaddrinfo(res); + close(newsocket); return 0; } @@ -908,6 +911,7 @@ NET_Socket(char *net_interface, int port, netsrc_t type, int family) if (ai == NULL) { + close(newsocket); return 0; }