From 039b388c82b159479df6a6a02efe124b28fafbde Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Wed, 21 Apr 2021 14:40:12 +0200 Subject: [PATCH] nameserv: avoid sockaddr_in6 with disabled IPv6 support Fixes: 10c760a80c15 ("nameserv: require getaddrinfo() and getnameinfo()") --- nameserv.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/nameserv.c b/nameserv.c index 81d1af2..9f7e648 100644 --- a/nameserv.c +++ b/nameserv.c @@ -130,7 +130,11 @@ int DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len) { char *result = NULL; - struct sockaddr_in6 in6; +#ifdef FEAT_IPV6 + struct sockaddr_in6 saddr; +#else + struct sockaddr_in saddr; +#endif IPSockAddr ip_saddr; socklen_t slen; char hbuf[NI_MAXHOST]; @@ -138,8 +142,8 @@ DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len) ip_saddr.ip_addr = *ip_addr; ip_saddr.port = 0; - slen = SCK_IPSockAddrToSockaddr(&ip_saddr, (struct sockaddr *)&in6, sizeof (in6)); - if (!getnameinfo((struct sockaddr *)&in6, slen, hbuf, sizeof (hbuf), NULL, 0, 0)) + slen = SCK_IPSockAddrToSockaddr(&ip_saddr, (struct sockaddr *)&saddr, sizeof (saddr)); + if (!getnameinfo((struct sockaddr *)&saddr, slen, hbuf, sizeof (hbuf), NULL, 0, 0)) result = hbuf; if (result == NULL)