]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3656. [bug] Treat a all zero netmask as invalid when generating
authorMark Andrews <marka@isc.org>
Wed, 25 Sep 2013 21:40:34 +0000 (07:40 +1000)
committerMark Andrews <marka@isc.org>
Wed, 25 Sep 2013 21:40:34 +0000 (07:40 +1000)
                        the localnets acl. [RT #34687]

CHANGES
bin/named/interfacemgr.c

diff --git a/CHANGES b/CHANGES
index fda8d476668d4803be931035abda589a91c29f46..d350cf7b0a582553a5f3319847e63bdbee2d7f54 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+3656.  [bug]           Treat a all zero netmask as invalid when generating
+                       the localnets acl. [RT #34687]
+
 3655.  [cleanup]       Simplify TCP message processing when requesting a
                        zone transfer.  [RT #34825]
 
index 418107214ce038bc9b34bd023e802e42e1e3cc26..ff629a9b308938923c8ef0b3671766d03cd53cda 100644 (file)
@@ -564,15 +564,22 @@ setup_locals(ns_interfacemgr_t *mgr, isc_interface_t *interface) {
                return (result);
 
        if (result != ISC_R_SUCCESS) {
-               isc_log_write(IFMGR_COMMON_LOGARGS,
-                             ISC_LOG_WARNING,
+               isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_WARNING,
                              "omitting IPv4 interface %s from "
-                             "localnets ACL: %s",
-                             interface->name,
+                             "localnets ACL: %s", interface->name,
                              isc_result_totext(result));
                return (ISC_R_SUCCESS);
        }
 
+       if (prefixlen == 0U) {
+               isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_WARNING,
+                             "omitting %s interface %s from localnets ACL: "
+                             "zero prefix length detected",
+                             (netaddr->family == AF_INET) ? "IPv4" : "IPv6",
+                             interface->name);
+               return (ISC_R_SUCCESS);
+       }
+
        result = dns_iptable_addprefix(mgr->aclenv.localnets->iptable,
                                       netaddr, prefixlen, ISC_TRUE);
        if (result != ISC_R_SUCCESS)