]> git.ipfire.org Git - people/ms/dnsmasq.git/commitdiff
Fix crash when empty address from DNS overlays A record from hosts.
authorEdwin Török <edwin+ml-cerowrt@etorok.net>
Sat, 14 Nov 2015 17:45:48 +0000 (17:45 +0000)
committerSimon Kelley <simon@thekelleys.org.uk>
Sat, 14 Nov 2015 17:55:41 +0000 (17:55 +0000)
CHANGELOG
src/cache.c

index d6e309fa05331e8b9412e374d0c645506744d05b..93c73d01e19562d27d5c56a3a87c8211422f20a1 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -13,6 +13,11 @@ version 2.76
            was a dangling symbolic link, even of --no-resolv set.
            Thanks to Alexander Kurtz for spotting the problem.
 
+           Fix crash when an A or AAAA record is defined locally,
+           in a hosts file, and an upstream server sends a reply
+           that the same name is empty. Thanks to Edwin Török for
+           the patch.
+
        
 version 2.75
             Fix reversion on 2.74 which caused 100% CPU use when a 
index 178d654ca92e97dd4199face425eba34f7546675..1b76b6751299939a4cf91e846924c1e38d4f9d43 100644 (file)
@@ -481,7 +481,7 @@ struct crec *cache_insert(char *name, struct all_addr *addr,
         existing record is for an A or AAAA and
         the record we're trying to insert is the same, 
         just drop the insert, but don't error the whole process. */
-      if ((flags & (F_IPV4 | F_IPV6)) && (flags & F_FORWARD))
+      if ((flags & (F_IPV4 | F_IPV6)) && (flags & F_FORWARD) && addr)
        {
          if ((flags & F_IPV4) && (new->flags & F_IPV4) &&
              new->addr.addr.addr.addr4.s_addr == addr->addr.addr4.s_addr)