]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
apps/s_socket: fix double close of listening socket when naccept==0
authorJoshua Rogers <MegaManSec@users.noreply.github.com>
Mon, 13 Oct 2025 14:35:43 +0000 (22:35 +0800)
committerTomas Mraz <tomas@openssl.org>
Fri, 17 Oct 2025 17:05:42 +0000 (19:05 +0200)
Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28813)

(cherry picked from commit 76b4fa346c364cccc9123efdeac95e5dc85f0a75)

apps/lib/s_socket.c

index 22c16264567f6e27a77e201fed0b94562726dc24..5cec8408b2d2c87e6bfd0d2c2e3824bdc6dc1b7b 100644 (file)
@@ -421,8 +421,6 @@ int do_server(int *accept_sock, const char *host, const char *port,
 
             if (naccept != -1)
                 naccept--;
-            if (naccept == 0)
-                BIO_closesocket(asock);
 
             BIO_set_tcp_ndelay(sock, 1);
             i = (*cb)(sock, type, protocol, context);
@@ -462,6 +460,7 @@ int do_server(int *accept_sock, const char *host, const char *port,
 
         if (i < 0 || naccept == 0) {
             BIO_closesocket(asock);
+            asock = INVALID_SOCKET;
             ret = i;
             break;
         }