From cece39e9fad8d53a1e41cae57348f5ab41ec3ba4 Mon Sep 17 00:00:00 2001 From: mutantmonkey Date: Sun, 21 Apr 2013 15:56:59 -0400 Subject: [PATCH] Fix segfault with mixed IPv4/IPv6 nameservers Fixes bug #1154432 --- dns.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dns.c b/dns.c index 683a4aa..8ea48ba 100644 --- a/dns.c +++ b/dns.c @@ -934,6 +934,8 @@ void dorequest(char *s,int type,word id) hp->id = id; /* htons() deliberately left out (redundant) */ #ifdef ENABLE_IPV6 for (i = 0;i < NSCOUNT6;i++) { + if (!NSSOCKADDR6(i)) + continue; if (NSSOCKADDR6(i)->sin6_family == AF_INET6) (void)sendto(resfd6,buf,r,0,(struct sockaddr *) NSSOCKADDR6(i), sizeof(struct sockaddr_in6)); @@ -1340,6 +1342,8 @@ void dns_ack6(void) } } else for (i = 0;i < NSCOUNT6;i++) { + if (!NSSOCKADDR6(i)) + continue; if ( addrcmp( (void *) &(NSSOCKADDR6(i)->sin6_addr), (void *) &(from6->sin6_addr), AF_INET6 ) == 0 ) break; -- 2.47.2