]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
apps: lib: Prevent potential NULL dereference in init_client()
authorAntonMoryakov <ant.v.moryakov@gmail.com>
Fri, 16 May 2025 14:19:21 +0000 (17:19 +0300)
committerTomas Mraz <tomas@openssl.org>
Thu, 29 May 2025 14:38:23 +0000 (16:38 +0200)
apps: lib: Simplify ba_ret handling in init_client()

Simplify logic around ba_ret assignment:
- Fail early if ba_ret == NULL
- Assign directly otherwise, without checking *ba_ret

This avoids extra nesting and matches OpenSSL's conventions.

CLA: trivial
Signed-off-by: Anton Moryakov <ant.v.moryakov@gmail.com>
Co-authored-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/26783)

(cherry picked from commit 3161f460fa7eacc7a93f8edf413c78b4dcf65823)

apps/lib/s_socket.c

index a1935bcce2adba32697b809518d47baadb1c4ad3..22c16264567f6e27a77e201fed0b94562726dc24 100644 (file)
@@ -172,8 +172,16 @@ int init_client(int *sock, const char *host, const char *port,
         }
 
         /* Save the address */
-        if (tfo || !doconn)
+        if (tfo || !doconn) {
+            if (ba_ret == NULL) {
+                BIO_printf(bio_err, "Internal error\n");
+                BIO_closesocket(*sock);
+                *sock = INVALID_SOCKET;
+                goto out;
+            }
+
             *ba_ret = BIO_ADDR_dup(BIO_ADDRINFO_address(ai));
+        }
 
         /* Success, don't try any more addresses */
         break;