]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
rolling 9.4.3-P5
authorEvan Hunt <each@isc.org>
Thu, 31 Dec 2009 21:02:05 +0000 (21:02 +0000)
committerEvan Hunt <each@isc.org>
Thu, 31 Dec 2009 21:02:05 +0000 (21:02 +0000)
19 files changed:
CHANGES
bin/named/query.c
bin/tests/system/conf.sh.in
bin/tests/system/dnssec/ns2/example.db.in
bin/tests/system/dnssec/ns2/sign.sh
bin/tests/system/dnssec/tests.sh
bin/tests/system/pending/clean.sh
bin/tests/system/pending/ns1/root.db.in
bin/tests/system/pending/ns1/sign.sh
bin/tests/system/pending/ns2/example.com.db.in
bin/tests/system/pending/ns2/named.conf
bin/tests/system/pending/ns2/sign.sh
bin/tests/system/pending/ns4/named.conf
bin/tests/system/pending/prereq.sh
bin/tests/system/pending/setup.sh
bin/tests/system/pending/tests.sh
lib/dns/include/dns/types.h
lib/dns/validator.c
version

diff --git a/CHANGES b/CHANGES
index 7f7978bf7b6c56a56df1d29b9a28313c0576301e..8cb4698d974ce54cd2f5f5bb6ca07236e805671e 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,10 @@
+       --- 9.4.3-P5 released ---
+
+2828.  [security]      Cached CNAME or DNAME RR could be returned to clients
+                       without DNSSEC validation. [RT #20737]
+
+2827.  [security]      Bogus NXDOMAIN could be cached as if valid. [RT #20712]
+
        --- 9.4.3-P4 released ---
 
 2772.  [security]      When validating, track whether pending data was from
index 3992d6e922691b23b9f77fd0249fe5f528cab80c..ef39235e8a2d2602b7e93083544d41b26fa94808 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: query.c,v 1.257.18.46.2.1 2009/11/19 00:25:17 marka Exp $ */
+/* $Id: query.c,v 1.257.18.46.2.2 2009/12/31 21:02:05 each Exp $ */
 
 /*! \file */
 
@@ -3346,8 +3346,6 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
        isc_boolean_t empty_wild;
        dns_rdataset_t *noqname;
        isc_boolean_t resuming;
-       dns_rdataset_t tmprdataset;
-       unsigned int dboptions;
 
        CTRACE("query_find");
 
@@ -3559,49 +3557,9 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
        /*
         * Now look for an answer in the database.
         */
-       dboptions = client->query.dboptions;
-       if (sigrdataset == NULL && client->view->enablednssec) {
-               /*
-                * If the client doesn't want DNSSEC we still want to
-                * look for any data pending validation to save a remote
-                * lookup if possible.
-                */
-               dns_rdataset_init(&tmprdataset);
-               sigrdataset = &tmprdataset;
-               dboptions |= DNS_DBFIND_PENDINGOK;
-       }
- refind:
        result = dns_db_find(db, client->query.qname, version, type,
-                            dboptions, client->now, &node, fname,
-                            rdataset, sigrdataset);
-       /*
-        * If we have found pending data try to validate it.
-        * If the data does not validate as secure and we can't
-        * use the unvalidated data requery the database with
-        * pending disabled to prevent infinite looping.
-        */
-       if (result != ISC_R_SUCCESS || !DNS_TRUST_PENDING(rdataset->trust))
-               goto validation_done;
-       if (validate(client, db, fname, rdataset, sigrdataset))
-               goto validation_done;
-       if (rdataset->trust != dns_trust_pending_answer ||
-           !PENDINGOK(client->query.dboptions)) {
-               dns_rdataset_disassociate(rdataset);
-               if (sigrdataset != NULL &&
-                   dns_rdataset_isassociated(sigrdataset))
-                       dns_rdataset_disassociate(sigrdataset);
-               if (sigrdataset == &tmprdataset)
-                       sigrdataset = NULL;
-               dns_db_detachnode(db, &node);
-               dboptions &= ~DNS_DBFIND_PENDINGOK;
-               goto refind;
-       }
- validation_done:
-       if (sigrdataset == &tmprdataset) {
-               if (dns_rdataset_isassociated(sigrdataset))
-                       dns_rdataset_disassociate(sigrdataset);
-               sigrdataset = NULL;
-       }
+                            client->query.dboptions, client->now,
+                            &node, fname, rdataset, sigrdataset);
 
  resume:
        CTRACE("query_find: resume");
index 10756a0db5890e651e94fd18f9b9591b5bb8f135..e62efceae8c3db7090d97caa4a1b6ef539084722 100644 (file)
@@ -15,7 +15,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: conf.sh.in,v 1.27.18.10 2008/01/11 23:45:59 tbox Exp $
+# $Id: conf.sh.in,v 1.27.18.10.4.1 2009/12/31 21:02:05 each Exp $
 
 #
 # Common configuration data for system tests, to be sourced into
@@ -44,7 +44,7 @@ CHECKCONF=$TOP/bin/check/named-checkconf
 # load on the machine to make it unusable to other users.
 # v6synth
 SUBDIRS="acl cacheclean checkconf checknames dnssec forward glue ixfr limits
-    lwresd masterfile masterformat notify nsupdate resolver rrsetorder
+    lwresd masterfile masterformat notify nsupdate pending resolver rrsetorder
     sortlist stub tkey unknown upforwd views xfer xferquota zonechecks"
 
 # PERL will be an empty string if no perl interpreter was found.
index 40d46fa5d4eb19aa2f0b68bc41e737ffe6b7ccfe..6f9fa8b6f8235cab41986896ce00078a9f460188 100644 (file)
@@ -13,7 +13,7 @@
 ; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 ; PERFORMANCE OF THIS SOFTWARE.
 
-; $Id: example.db.in,v 1.13.18.2 2004/05/05 01:32:35 marka Exp $
+; $Id: example.db.in,v 1.13.18.2.68.1 2009/12/31 21:02:05 each Exp $
 
 $TTL 300       ; 5 minutes
 @                      IN SOA  mname1. . (
@@ -36,6 +36,9 @@ d                     A       10.0.0.4
 foo                    TXT     "testing"
 foo                    A       10.0.1.0
 
+bad-cname              CNAME   a
+bad-dname              DNAME   @
+
 ; Used for testing CNAME queries
 cname1                 CNAME   cname1-target
 cname1-target          TXT     "testing cname"
index 123dad79b394caafa53d387a441d707025507140..66b3f3a967d615011df7748e9c4b616294c16ad2 100644 (file)
@@ -15,7 +15,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: sign.sh,v 1.24.18.2 2006/01/04 00:37:23 marka Exp $
+# $Id: sign.sh,v 1.24.18.2.68.1 2009/12/31 21:02:05 each Exp $
 
 SYSTEMTESTTOP=../..
 . $SYSTEMTESTTOP/conf.sh
@@ -42,6 +42,53 @@ cat $infile $keyname1.key $keyname2.key >$zonefile
 
 $SIGNER -g -r $RANDFILE -o $zone -k $keyname1 $zonefile $keyname2 > /dev/null
 
+#
+# lower/uppercase the signature bits with the exception of the last characters
+# changing the last 4 characters will lead to a bad base64 encoding.
+#
+$CHECKZONE -D -q -i local $zone $zonefile.signed |
+awk '
+tolower($1) == "bad-cname.example." && $4 == "RRSIG" && $5 == "CNAME" {
+       for (i = 1; i <= NF; i++ ) {
+               if (i <= 12) {
+                       printf("%s ", $i);
+                       continue;
+               }
+               prefix = substr($i, 1, length($i) - 4);
+               suffix = substr($i, length($i) - 4, 4);
+               if (i > 12 && tolower(prefix) != prefix)
+                       printf("%s%s", tolower(prefix), suffix);
+               else if (i > 12 && toupper(prefix) != prefix)
+                       printf("%s%s", toupper(prefix), suffix);
+               else
+                       printf("%s%s ", prefix, suffix);
+       }
+       printf("\n");
+       next;
+}
+
+tolower($1) == "bad-dname.example." && $4 == "RRSIG" && $5 == "DNAME" {
+       for (i = 1; i <= NF; i++ ) {
+               if (i <= 12) {
+                       printf("%s ", $i);
+                       continue;
+               }
+               prefix = substr($i, 1, length($i) - 4);
+               suffix = substr($i, length($i) - 4, 4);
+               if (i > 12 && tolower(prefix) != prefix)
+                       printf("%s%s", tolower(prefix), suffix);
+               else if (i > 12 && toupper(prefix) != prefix)
+                       printf("%s%s", toupper(prefix), suffix);
+               else
+                       printf("%s%s ", prefix, suffix);
+       }
+       printf("\n");
+       next;
+}
+
+{ print; }' > $zonefile.signed++ && mv $zonefile.signed++ $zonefile.signed
+
+
 # Sign the privately secure file
 
 privzone=private.secure.example.
index 8ad85b0498ef32254b18bebcb6b6e7de4c5f5c02..fa1abc178b8fdaa5236edab0bb22dfaff231eda0 100644 (file)
@@ -15,7 +15,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: tests.sh,v 1.44.18.5 2006/02/26 23:49:49 marka Exp $
+# $Id: tests.sh,v 1.44.18.5.68.1 2009/12/31 21:02:05 each Exp $
 
 SYSTEMTESTTOP=..
 . $SYSTEMTESTTOP/conf.sh
@@ -177,6 +177,41 @@ n=`expr $n + 1`
 if [ $ret != 0 ]; then echo "I:failed"; fi
 status=`expr $status + $ret`
 
+echo "I:Checking that a bad CNAME signature is caught after a +CD query ($n)"
+ret=0
+#prime
+$DIG $DIGOPTS +cd bad-cname.example. @10.53.0.4 > dig.out.ns4.prime$n || ret=1
+#check: requery with +CD.  pending data should be returned even if it's bogus
+expect="a.example.
+10.0.0.1"
+ans=`$DIG $DIGOPTS +cd +nodnssec +short bad-cname.example. @10.53.0.4` || ret=1
+test "$ans" = "$expect" || ret=1
+test $ret = 0 || echo I:failed, got "'""$ans""'", expected "'""$expect""'"
+#check: requery without +CD.  bogus cached data should be rejected.
+$DIG $DIGOPTS +nodnssec bad-cname.example. @10.53.0.4 > dig.out.ns4.test$n || ret=1
+grep "SERVFAIL" dig.out.ns4.test$n > /dev/null || ret=1
+n=`expr $n + 1`
+if [ $ret != 0 ]; then echo "I:failed"; fi
+status=`expr $status + $ret`
+
+echo "I:Checking that a bad DNAME signature is caught after a +CD query ($n)"
+ret=0
+#prime
+$DIG $DIGOPTS +cd a.bad-dname.example. @10.53.0.4 > dig.out.ns4.prime$n || ret=1
+#check: requery with +CD.  pending data should be returned even if it's bogus
+expect="example.
+a.example.
+10.0.0.1"
+ans=`$DIG $DIGOPTS +cd +nodnssec +short a.bad-dname.example. @10.53.0.4` || ret=1
+test "$ans" = "$expect" || ret=1
+test $ret = 0 || echo I:failed, got "'""$ans""'", expected "'""$expect""'"
+#check: requery without +CD.  bogus cached data should be rejected.
+$DIG $DIGOPTS +nodnssec a.bad-dname.example. @10.53.0.4 > dig.out.ns4.test$n || ret=1
+grep "SERVFAIL" dig.out.ns4.test$n > /dev/null || ret=1
+n=`expr $n + 1`
+if [ $ret != 0 ]; then echo "I:failed"; fi
+status=`expr $status + $ret`
+
 # Check the insecure.secure.example domain (insecurity proof)
 
 echo "I:checking 2-server insecurity proof ($n)"
index b0c0f587154f551c864d19664c2410cfab4bee83..297baf696fc2c449384c372d2e7f41c5f8dcf53c 100644 (file)
@@ -14,7 +14,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: clean.sh,v 1.4 2009/12/30 08:02:22 jinmei Exp $
+# $Id: clean.sh,v 1.4.4.1 2009/12/31 21:02:05 each Exp $
 
 rm -rf */*.signed
 rm -rf */*.jnl
index 41d868142d228ac27fdcc7183c8f28cdf0b62649..2abbd7f2dd8b2a6f3715ff9020e554ba88a1c8aa 100644 (file)
@@ -12,7 +12,7 @@
 ; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 ; PERFORMANCE OF THIS SOFTWARE.
 
-; $Id: root.db.in,v 1.4 2009/12/30 08:02:22 jinmei Exp $
+; $Id: root.db.in,v 1.4.4.1 2009/12/31 21:02:05 each Exp $
 
 $TTL 30
 .                      IN SOA  marka.isc.org. a.root.servers.nil. (
index 6a76323e09623f0b4e03373f9c76ae9ecc5cdd37..ec7d6ede9e99884f01b17735a25f75478c2b2f6a 100644 (file)
@@ -14,7 +14,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: sign.sh,v 1.3 2009/12/30 08:02:22 jinmei Exp $
+# $Id: sign.sh,v 1.3.4.1 2009/12/31 21:02:05 each Exp $
 
 SYSTEMTESTTOP=../..
 . $SYSTEMTESTTOP/conf.sh
@@ -30,8 +30,8 @@ zonefile=root.db
 cp ../ns2/dsset-example. .
 cp ../ns2/dsset-example.com. .
 
-keyname1=`$KEYGEN -q -r $RANDFILE -a RSASHA256 -b 1024 -n zone $zone`
-keyname2=`$KEYGEN -q -r $RANDFILE -a RSASHA256 -b 2048 -f KSK -n zone $zone`
+keyname1=`$KEYGEN -r $RANDFILE -a RSASHA1 -b 1024 -n zone $zone`
+keyname2=`$KEYGEN -r $RANDFILE -a RSASHA1 -b 2048 -f KSK -n zone $zone`
 cat $infile $keyname1.key $keyname2.key > $zonefile
 
 $SIGNER -g -r $RANDFILE -o $zone $zonefile > /dev/null
index 9cdb2fd9a910c055cf2ecde2227990644fc96bd4..95d82c3188befa3ffe3c4ce64b7512fab5d0a335 100644 (file)
@@ -12,7 +12,7 @@
 ; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 ; PERFORMANCE OF THIS SOFTWARE.
 
-; $Id: example.com.db.in,v 1.2 2009/12/30 08:02:22 jinmei Exp $
+; $Id: example.com.db.in,v 1.2.12.1 2009/12/31 21:02:05 each Exp $
 
 $TTL 30
 @                      IN SOA  mname1. . (
index 7cc1ffbc632c3b3da28e89472413d4e815c9f5c7..51c6d792c5f69c50d4d1af0b594e5b5c12f7100d 100644 (file)
@@ -14,7 +14,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: named.conf,v 1.4 2009/12/30 08:02:22 jinmei Exp $ */
+/* $Id: named.conf,v 1.4.4.1 2009/12/31 21:02:05 each Exp $ */
 
 // NS2
 
index 626927aa06b3f579f9b16dadc94252cf43a91c6a..82db0644a81b8a782e6a27274248abe0f34f91ec 100644 (file)
@@ -14,7 +14,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: sign.sh,v 1.4 2009/12/30 08:02:22 jinmei Exp $
+# $Id: sign.sh,v 1.4.4.1 2009/12/31 21:02:05 each Exp $
 
 SYSTEMTESTTOP=../..
 . $SYSTEMTESTTOP/conf.sh
@@ -26,8 +26,8 @@ for domain in example example.com; do
        infile=${domain}.db.in
        zonefile=${domain}.db
 
-       keyname1=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 768 -n zone $zone`
-       keyname2=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 1024 -f KSK -n zone $zone`
+       keyname1=`$KEYGEN -r $RANDFILE -a RSASHA1 -b 768 -n zone $zone`
+       keyname2=`$KEYGEN -r $RANDFILE -a RSASHA1 -b 1024 -f KSK -n zone $zone`
 
        cat $infile $keyname1.key $keyname2.key >$zonefile
 
index 8c941496e234b7f7105140213efba8c994f884b7..99c32c94797560940a86978e8f548b9beeba697c 100644 (file)
@@ -14,7 +14,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: named.conf,v 1.2 2009/11/17 23:55:18 marka Exp $ */
+/* $Id: named.conf,v 1.2.44.1 2009/12/31 21:02:05 each Exp $ */
 
 controls { /* empty */ };
 
@@ -29,6 +29,7 @@ options {
        listen-on { 10.53.0.4; };
        listen-on-v6 { none; };
        recursion yes;
+       dnssec-validation yes;
 };
 
 zone "." {
index b05b622ed7ee62014a0667f6de9367ac3edc6b4b..8b0940e7a1553413eb59af9c932121a9955d0fab 100644 (file)
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: prereq.sh,v 1.3 2009/11/18 23:48:06 tbox Exp $
+# $Id: prereq.sh,v 1.3.38.1 2009/12/31 21:02:05 each Exp $
 
-../../../tools/genrandom 400 random.data
-
-if $KEYGEN -q -a RSAMD5 -b 512 -n zone -r random.data foo > /dev/null 2>&1
+../../genrandom 400 random.data
+if $KEYGEN -a RSAMD5 -b 512 -n zone -r random.data foo > /dev/null 2>&1
 then
     rm -f Kfoo*
 else
index 5332d36de6175861561a4520d42e034c4ecb1051..a5294f633470496ffb2cca99cdae701e65fc9dc2 100644 (file)
@@ -14,8 +14,8 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: setup.sh,v 1.2 2009/11/17 23:55:18 marka Exp $
+# $Id: setup.sh,v 1.2.44.1 2009/12/31 21:02:05 each Exp $
 
-../../../tools/genrandom 400 random.data
+../../genrandom 400 random.data
 
 cd ns1 && sh -e sign.sh
index c27b072a01c995f18d72d2412b406a504e24dcdd..817248ec3df1e273ce6e67afa7dcba5a0e1ebbf6 100644 (file)
@@ -14,7 +14,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: tests.sh,v 1.4 2009/12/30 08:02:22 jinmei Exp $
+# $Id: tests.sh,v 1.4.4.1 2009/12/31 21:02:05 each Exp $
 
 SYSTEMTESTTOP=..
 . $SYSTEMTESTTOP/conf.sh
@@ -71,8 +71,8 @@ test $ret = 0 || echo I:failed, got "'""$ans""'", expected "'""$expect""'"
 status=`expr $status + $ret`
 
 #
-# Prime cache with pending additional records.  These should not be promoted
-# to answer.
+# Prime cache with pending additional records.  Technically, these should not
+# be promoted to answer, but it's allowed in BIND 9.4.
 #
 echo "I:Priming cache (pending additional A and AAAA)"
 ret=0
@@ -100,9 +100,9 @@ test "$ans" = "$expect" || ret=1
 test $ret = 0 || echo I:failed, got "'""$ans""'", expected "'""$expect""'"
 status=`expr $status + $ret`
 
-echo "I:Checking updated data to be returned (with CD)" 
+echo "I:Checking cached data to be returned (with CD, BIND 9.4 only)" 
 ret=0
-expect="2001:db8::3"
+expect="2001:db8::2"
 ans=`$DIG $DIGOPTS_CD @10.53.0.4 mail.example.com AAAA` || ret=1
 test "$ans" = "$expect" || ret=1
 test $ret = 0 || echo I:failed, got "'""$ans""'", expected "'""$expect""'"
index fb061a3f46aa98f58d8ad08e1b57e8957a610851..f8f8153dc5e6a5bc47461190deddbc401014742e 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: types.h,v 1.109.18.12.68.1 2009/11/19 00:25:18 marka Exp $ */
+/* $Id: types.h,v 1.109.18.12.68.2 2009/12/31 21:02:05 each Exp $ */
 
 #ifndef DNS_TYPES_H
 #define DNS_TYPES_H 1
@@ -284,6 +284,8 @@ enum {
 
 #define DNS_TRUST_PENDING(x)           ((x) == dns_trust_pending_answer || \
                                         (x) == dns_trust_pending_additional)
+#define DNS_TRUST_ADDITIONAL(x)                ((x) == dns_trust_additional || \
+                                        (x) == dns_trust_pending_additional)
 #define DNS_TRUST_GLUE(x)              ((x) == dns_trust_glue)
  
  
index 31098910bd6d4aec3664dbf07d1e4aeb2c6b1f5c..6d9522065ee3069af575072f1902f7193e173901 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: validator.c,v 1.119.18.41.2.2 2009/11/19 00:25:18 marka Exp $ */
+/* $Id: validator.c,v 1.119.18.41.2.3 2009/12/31 21:02:05 each Exp $ */
 
 /*! \file */
 
@@ -2572,20 +2572,20 @@ proveunsecure(dns_validator_t *val, isc_boolean_t have_ds, isc_boolean_t resume)
        if (val->havedlvsep)
                dns_name_copy(dns_fixedname_name(&val->dlvsep), secroot, NULL);
        else {
+               unsigned int labels;
                dns_name_copy(val->event->name, secroot, NULL);
                /*
                 * If this is a response to a DS query, we need to look in
                 * the parent zone for the trust anchor.
                 */
-               if (val->event->type == dns_rdatatype_ds &&
-                   dns_name_countlabels(secroot) > 1U)
-                       dns_name_split(secroot, 1, NULL, secroot);
+
+               labels = dns_name_countlabels(secroot);
+               if (val->event->type == dns_rdatatype_ds && labels > 1U)
+                       dns_name_getlabelsequence(secroot, 1, labels - 1,
+                                                 secroot);
                result = dns_keytable_finddeepestmatch(val->keytable,
                                                       secroot, secroot);
-
                if (result == ISC_R_NOTFOUND) {
-                       validator_log(val, ISC_LOG_DEBUG(3),
-                                     "not beneath secure root");
                        if (val->mustbesecure) {
                                validator_log(val, ISC_LOG_WARNING,
                                              "must be secure failure");
diff --git a/version b/version
index d15763c1a8ba756cad30c05c04a9dcb058c1afa3..3c09a537e4a09fe29b270e74a6d5ec7b42e2c3ce 100644 (file)
--- a/version
+++ b/version
@@ -1,4 +1,4 @@
-# $Id: version,v 1.29.134.23.2.4 2009/11/19 00:25:17 marka Exp $
+# $Id: version,v 1.29.134.23.2.5 2009/12/31 21:02:05 each Exp $
 #
 # This file must follow /bin/sh rules.  It is imported directly via
 # configure.
@@ -7,4 +7,4 @@ MAJORVER=9
 MINORVER=4
 PATCHVER=3
 RELEASETYPE=-P
-RELEASEVER=4
+RELEASEVER=5