]> 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 04:00:14 +0000 (14:00 +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 59580a463a1296a5ddcf0c6f5f285920af9067d0..aa8754ea82e1f2daea53b811a7c00819238a0ae4 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]
 
        --- 9.8.8rc1 released ---
index 326dd8968af9abbaf27f46b8a2e9389d3665858a..17594f11ed6deb6f24616a049e815725db07d4bb 100644 (file)
@@ -229,7 +229,7 @@ $DIG $DIGOPTS a.wild.optout.example. \
 $DIG $DIGOPTS a.wild.optout.example. \
        @10.53.0.4 a > dig.out.ns4.test$n || ret=1
 $PERL ../digcomp.pl dig.out.ns3.test$n dig.out.ns4.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 934756d29df21aae233726d986ff03220679e99c..8e161c0aa3e5f1d999a524dd59f3c01669cfa2ab 100644 (file)
@@ -2109,6 +2109,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 d40287ec1f378632db10b0630dc96286c6da2c74..dd1804945b2dda01becdf9f02b7b0254da90ac71 100644 (file)
@@ -2800,7 +2800,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);