diff --git a/lib/roles/http/client/client-handshake.c b/lib/roles/http/client/client-handshake.c index 6b4e98f346cc125cea200316ee751c2240e25505..d3cacb8c032783ac4d06834b19ee51d62b50b019 100644 --- a/lib/roles/http/client/client-handshake.c +++ b/lib/roles/http/client/client-handshake.c @@ -264,9 +264,10 @@ create_new_conn: * to whatever we decided to connect to */ - lwsl_info("%s: %p: address %s\n", __func__, wsi, ads); + lwsl_info("%s: %p: address %s\n", __func__, wsi, ads); - n = lws_getaddrinfo46(wsi, ads, &result); + n = lws_getaddrinfo46(wsi, ads, &result); + memset(&sa46, 0, sizeof(sa46)); #ifdef LWS_WITH_IPV6 if (wsi->ipv6) { @@ -282,8 +283,6 @@ create_new_conn: sa6 = ((struct sockaddr_in6 *)result->ai_addr); - memset(&sa46, 0, sizeof(sa46)); - sa46.sa6.sin6_family = AF_INET6; switch (result->ai_family) { case AF_INET: @@ -363,7 +362,7 @@ create_new_conn: sa46.sa4.sin_family = AF_INET; sa46.sa4.sin_addr = *((struct in_addr *)p); - bzero(&sa46.sa4.sin_zero, 8); + bzero(&sa46.sa4.sin_zero, sizeof(sa46.sa4.sin_zero)); } if (result)