Added intermediate casts to void* to prevent spurious warnings (with Clang and -Wcast-align).

This commit is contained in:
Thomas Pornin 2017-08-19 15:50:45 +02:00
parent 8cd3f8fecb
commit 8e86598b33
14 changed files with 38 additions and 36 deletions

View file

@ -72,9 +72,11 @@ host_connect(const char *host, const char *port, int verbose)
sa = (struct sockaddr *)p->ai_addr;
if (sa->sa_family == AF_INET) {
addr = &((struct sockaddr_in *)sa)->sin_addr;
addr = &((struct sockaddr_in *)
(void *)sa)->sin_addr;
} else if (sa->sa_family == AF_INET6) {
addr = &((struct sockaddr_in6 *)sa)->sin6_addr;
addr = &((struct sockaddr_in6 *)
(void *)sa)->sin6_addr;
} else {
addr = NULL;
}

View file

@ -75,7 +75,7 @@ host_bind(const char *host, const char *port, int verbose)
sa = (struct sockaddr *)p->ai_addr;
if (sa->sa_family == AF_INET) {
sa4 = *(struct sockaddr_in *)sa;
memcpy(&sa4, sa, sizeof sa4);
sa = (struct sockaddr *)&sa4;
sa_len = sizeof sa4;
addr = &sa4.sin_addr;
@ -83,7 +83,7 @@ host_bind(const char *host, const char *port, int verbose)
sa4.sin_addr.s_addr = INADDR_ANY;
}
} else if (sa->sa_family == AF_INET6) {
sa6 = *(struct sockaddr_in6 *)sa;
memcpy(&sa6, sa, sizeof sa6);
sa = (struct sockaddr *)&sa6;
sa_len = sizeof sa6;
addr = &sa6.sin6_addr;