]> git.ipfire.org Git - thirdparty/mtr.git/commitdiff
Fix segfault with mixed IPv4/IPv6 nameservers 5/head
authormutantmonkey <mutantmonkey@mutantmonkey.in>
Sun, 21 Apr 2013 19:56:59 +0000 (15:56 -0400)
committermutantmonkey <mutantmonkey@mutantmonkey.in>
Sun, 21 Apr 2013 19:56:59 +0000 (15:56 -0400)
Fixes bug #1154432

dns.c

diff --git a/dns.c b/dns.c
index 683a4aa639e86bd7efcc1dc4790fb8dea3359af8..8ea48ba915eb2be075e5ad40c446f4a4cd88753f 100644 (file)
--- 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;