From: Tomas Mraz Date: Mon, 4 Oct 2021 09:19:33 +0000 (+0200) Subject: s_socket.c: Avoid possible NULL pointer dereference X-Git-Tag: openssl-3.2.0-alpha1~3491 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e8655e16cab9cd14ebfe9f2214c2f2aa39c67a26;p=thirdparty%2Fopenssl.git s_socket.c: Avoid possible NULL pointer dereference Reviewed-by: Dmitry Belyavskiy Reviewed-by: Bernd Edlinger (Merged from https://github.com/openssl/openssl/pull/16736) --- diff --git a/apps/lib/s_socket.c b/apps/lib/s_socket.c index 4e262e681d6..805a1f0f3df 100644 --- a/apps/lib/s_socket.c +++ b/apps/lib/s_socket.c @@ -82,7 +82,6 @@ int init_client(int *sock, const char *host, const char *port, BIO_ADDRINFO *bindaddr = NULL; const BIO_ADDRINFO *ai = NULL; const BIO_ADDRINFO *bi = NULL; - char *hostname = NULL; int found = 0; int ret; @@ -173,10 +172,6 @@ int init_client(int *sock, const char *host, const char *port, break; } - hostname = BIO_ADDR_hostname_string(BIO_ADDRINFO_address(ai), 1); - BIO_printf(bio_out, "Connecting to %s\n", hostname); - OPENSSL_free(hostname); - if (*sock == INVALID_SOCKET) { if (bindaddr != NULL && !found) { BIO_printf(bio_err, "Can't bind %saddress for %s%s%s\n", @@ -193,6 +188,13 @@ int init_client(int *sock, const char *host, const char *port, } ERR_print_errors(bio_err); } else { + char *hostname = NULL; + + hostname = BIO_ADDR_hostname_string(BIO_ADDRINFO_address(ai), 1); + if (hostname != NULL) { + BIO_printf(bio_out, "Connecting to %s\n", hostname); + OPENSSL_free(hostname); + } /* Remove any stale errors from previous connection attempts */ ERR_clear_error(); ret = 1;