aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon L. B. Nielsen <simon@FreeBSD.org>2012-08-06 21:33:11 +0000
committerSimon L. B. Nielsen <simon@FreeBSD.org>2012-08-06 21:33:11 +0000
commit12a852643998f690b2610d9e0c78d562a1f0a5b8 (patch)
tree76fb2f0801f477ef8316cf485bb63e1d5490fae2
parent91843b976ed9c9cea085e348edfb4c94d842f45e (diff)
downloadsrc-12a852643998f690b2610d9e0c78d562a1f0a5b8.tar.gz
src-12a852643998f690b2610d9e0c78d562a1f0a5b8.zip
Fix named(8) DNSSEC validation Denial of Service.
Security: FreeBSD-SA-12:05.bind Security: CVE-2012-3817 Obtained from: ISC Approved by: so (simon)
Notes
Notes: svn path=/releng/7.4/; revision=239108
-rw-r--r--UPDATING3
-rw-r--r--contrib/bind9/lib/dns/resolver.c5
-rw-r--r--sys/conf/newvers.sh2
3 files changed, 7 insertions, 3 deletions
diff --git a/UPDATING b/UPDATING
index b36591b8b989..49bbfe8f2dd9 100644
--- a/UPDATING
+++ b/UPDATING
@@ -8,6 +8,9 @@ Items affecting the ports and packages system can be found in
/usr/ports/UPDATING. Please read that file before running
portupgrade.
+20120806: p10 FreeBSD-SA-12:05.bind
+ Fix named(8) DNSSEC validation Denial of Service.
+
20120612: p9 FreeBSD-SA-12:03.bind
FreeBSD-SA-12:04.sysret
Fix a problem where zero-length RDATA fields can cause named to crash.
diff --git a/contrib/bind9/lib/dns/resolver.c b/contrib/bind9/lib/dns/resolver.c
index f14ac7fda535..5d0b4e9ee83a 100644
--- a/contrib/bind9/lib/dns/resolver.c
+++ b/contrib/bind9/lib/dns/resolver.c
@@ -7622,6 +7622,7 @@ dns_resolver_addbadcache(dns_resolver_t *resolver, dns_name_t *name,
}
bad->type = type;
bad->hashval = hashval;
+ bad->expire = *expire;
isc_buffer_init(&buffer, bad + 1, name->length);
dns_name_init(&bad->name, NULL);
dns_name_copy(name, &bad->name, &buffer);
@@ -7633,8 +7634,8 @@ dns_resolver_addbadcache(dns_resolver_t *resolver, dns_name_t *name,
if (resolver->badcount < resolver->badhash * 2 &&
resolver->badhash > DNS_BADCACHE_SIZE)
resizehash(resolver, &now, ISC_FALSE);
- }
- bad->expire = *expire;
+ } else
+ bad->expire = *expire;
cleanup:
UNLOCK(&resolver->lock);
}
diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh
index 379844794e43..50b946b5e5d2 100644
--- a/sys/conf/newvers.sh
+++ b/sys/conf/newvers.sh
@@ -32,7 +32,7 @@
TYPE="FreeBSD"
REVISION="7.4"
-BRANCH="RELEASE-p9"
+BRANCH="RELEASE-p10"
if [ "X${BRANCH_OVERRIDE}" != "X" ]; then
BRANCH=${BRANCH_OVERRIDE}
fi