]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3942. [bug] Wildcard responses from a optout range should be
authorMark Andrews <marka@isc.org>
Thu, 4 Sep 2014 03:57:50 +0000 (13:57 +1000)
committerMark Andrews <marka@isc.org>
Thu, 4 Sep 2014 03:57:50 +0000 (13:57 +1000)
                        marked as insecure. [RT #37072]

CHANGES
bin/tests/system/dnssec/tests.sh
lib/dns/nsec3.c
lib/dns/validator.c

diff --git a/CHANGES b/CHANGES
index b9c06a05e68351bbbb7e81ff44d6b0d925330de3..209f39949400ff77808523a7b145b236553982de 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+3942.  [bug]           Wildcard responses from a optout range should be
+                       marked as insecure. [RT #37072]
+
 3941.  [doc]           Include the BIND version number in the ARM. [RT #37067]
 
 3940.  [func]          "rndc nta" now allows negative trust anchors to be
index 436f8e48bfb4b80f131b9fdb5f4a0fe52c8757e0..2c10e086a69c2c2fd8bddbd2378a96f108ce732d 100644 (file)
@@ -271,7 +271,7 @@ $DIG $DIGOPTS a.wild.optout.example. \
 stripns dig.out.ns3.test$n > dig.out.ns3.stripped.test$n
 stripns dig.out.ns4.test$n > dig.out.ns4.stripped.test$n
 $PERL ../digcomp.pl dig.out.ns3.stripped.test$n dig.out.ns4.stripped.test$n || ret=1
-grep "flags:.*ad.*QUERY" dig.out.ns4.test$n > /dev/null || ret=1
+grep "flags:.*ad.*QUERY" dig.out.ns4.test$n > /dev/null && ret=1
 grep "status: NOERROR" dig.out.ns4.test$n > /dev/null || ret=1
 n=`expr $n + 1`
 if [ $ret != 0 ]; then echo "I:failed"; fi
index 619cb4e346e016056745d963e44a341822c70390..075fe32567ec4eadc2be662f5e940fed6c77696d 100644 (file)
@@ -2071,6 +2071,9 @@ dns_nsec3_noexistnodata(dns_rdatatype_t type, dns_name_t* name,
                                if ((nsec3.flags & DNS_NSEC3FLAG_OPTOUT) != 0)
                                        (*logit)(arg, ISC_LOG_DEBUG(3),
                                                 "NSEC3 indicates optout");
+                               else
+                                       (*logit)(arg, ISC_LOG_DEBUG(3),
+                                                "NSEC3 indicates secure range");
                                *optout =
                                    ISC_TF(nsec3.flags & DNS_NSEC3FLAG_OPTOUT);
                        }
index e53c2488f366859f08403412c99dfe860270f973..11e1197bdbb0a38a5cfe7cf559e423d85f88eead 100644 (file)
@@ -2805,7 +2805,7 @@ nsecvalidate(dns_validator_t *val, isc_boolean_t resume) {
        if (!NEEDNODATA(val) && !NEEDNOWILDCARD(val) && NEEDNOQNAME(val)) {
                if (!FOUNDNOQNAME(val))
                        findnsec3proofs(val);
-               if (FOUNDNOQNAME(val) && FOUNDCLOSEST(val)) {
+               if (FOUNDNOQNAME(val) && FOUNDCLOSEST(val) && !FOUNDOPTOUT(val)) {
                        validator_log(val, ISC_LOG_DEBUG(3),
                                      "marking as secure, noqname proof found");
                        marksecure(val->event);