summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorTomas Mraz <tomas@openssl.org>2021-10-04 11:19:33 +0200
committerTomas Mraz <tomas@openssl.org>2021-10-06 17:23:28 +0200
commite8655e16cab9cd14ebfe9f2214c2f2aa39c67a26 (patch)
treebf25a51d878ea067b27d97f9a368908ab713d902 /apps
parent64da15c40d15aac58e211fd25d00e9ae84d0379b (diff)
s_socket.c: Avoid possible NULL pointer dereference
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/16736)
Diffstat (limited to 'apps')
-rw-r--r--apps/lib/s_socket.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/apps/lib/s_socket.c b/apps/lib/s_socket.c
index 4e262e681d..805a1f0f3d 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;