diff options
author | dougb <dougb@FreeBSD.org> | 2011-05-28 00:21:28 +0000 |
---|---|---|
committer | dougb <dougb@FreeBSD.org> | 2011-05-28 00:21:28 +0000 |
commit | ced7835c06b507528a27a1ef54de7f2533a2200c (patch) | |
tree | b74697c394b9c5dace073b5174bc5cb33161ac8b /contrib/bind9/lib/dns/rdataset.c | |
parent | f187cb5ae2a428062327dc2d4300a55564e91ed0 (diff) | |
download | FreeBSD-src-ced7835c06b507528a27a1ef54de7f2533a2200c.zip FreeBSD-src-ced7835c06b507528a27a1ef54de7f2533a2200c.tar.gz |
Upgrade to 9.6-ESV-R4-P1, which address the following issues:
1. Very large RRSIG RRsets included in a negative cache can trigger
an assertion failure that will crash named (BIND 9 DNS) due to an
off-by-one error in a buffer size check.
This bug affects all resolving name servers, whether DNSSEC validation
is enabled or not, on all BIND versions prior to today. There is a
possibility of malicious exploitation of this bug by remote users.
2. Named could fail to validate zones listed in a DLV that validated
insecure without using DLV and had DS records in the parent zone.
Add a patch provided by ru@ and confirmed by ISC to fix a crash at
shutdown time when a SIG(0) key is being used.
Diffstat (limited to 'contrib/bind9/lib/dns/rdataset.c')
-rw-r--r-- | contrib/bind9/lib/dns/rdataset.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/contrib/bind9/lib/dns/rdataset.c b/contrib/bind9/lib/dns/rdataset.c index c0fcde5..44b3a5e 100644 --- a/contrib/bind9/lib/dns/rdataset.c +++ b/contrib/bind9/lib/dns/rdataset.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: rdataset.c,v 1.82.50.4 2010-02-25 10:56:41 tbox Exp $ */ +/* $Id: rdataset.c,v 1.82.50.4.6.1 2011-05-27 00:19:19 each Exp $ */ /*! \file */ @@ -34,6 +34,26 @@ #include <dns/rdataset.h> #include <dns/compress.h> +static const char *trustnames[] = { + "none", + "pending-additional", + "pending-answer", + "additional", + "glue", + "answer", + "authauthority", + "authanswer", + "secure", + "local" /* aka ultimate */ +}; + +const char * +dns_trust_totext(dns_trust_t trust) { + if (trust >= sizeof(trustnames)/sizeof(*trustnames)) + return ("bad"); + return (trustnames[trust]); +} + void dns_rdataset_init(dns_rdataset_t *rdataset) { |