diff --git a/apps/s_socket.c b/apps/s_socket.c index d21bfc60c19a2be0eba5eaab93d91f70195bfe86..69f0f4f05e7f9242ca725cf1fd368e74ae67f8b4 100644 --- a/apps/s_socket.c +++ b/apps/s_socket.c @@ -211,7 +211,7 @@ int do_server(int *accept_sock, const char *host, const char *port, int i; BIO_ADDRINFO *res = NULL; const BIO_ADDRINFO *next; - int sock_family, sock_type, sock_protocol; + int sock_family, sock_type, sock_protocol, sock_port; const BIO_ADDR *sock_address; int sock_options = BIO_SOCK_REUSEADDR; int ret = 0; @@ -280,10 +280,12 @@ int do_server(int *accept_sock, const char *host, const char *port, } #endif + sock_port = BIO_ADDR_rawport(sock_address); + BIO_ADDRINFO_free(res); res = NULL; - if (BIO_ADDR_rawport(sock_address) == 0) { + if (sock_port == 0) { /* dynamically allocated port, report which one */ union BIO_sock_info_u info; char *hostname = NULL;