diff options
Diffstat (limited to 'resolv/res_send.c')
-rw-r--r-- | resolv/res_send.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/resolv/res_send.c b/resolv/res_send.c index 86c4f1e0f7..e62cde2360 100644 --- a/resolv/res_send.c +++ b/resolv/res_send.c @@ -1062,8 +1062,13 @@ Aerror(const res_state statp, FILE *file, const char *string, int error, fprintf(file, "res_send: %s ([%s].%u): %s\n", string, - inet_ntop(address->sa_family, address->sa_data, - tmp, sizeof tmp), + (address->sa_family == AF_INET + ? inet_ntop(address->sa_family, + &((const struct sockaddr_in *) address)->sin_addr, + tmp, sizeof tmp) + : inet_ntop(address->sa_family, + &((const struct sockaddr_in6 *) address)->sin6_addr, + tmp, sizeof tmp)), (address->sa_family == AF_INET ? ntohs(((struct sockaddr_in *) address)->sin_port) : address->sa_family == AF_INET6 |