Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/external/bsd/bind/dist patch for: https://www.isc.org/softwa...
details: https://anonhg.NetBSD.org/src/rev/6eac7c088d55
branches: trunk
changeset: 771249:6eac7c088d55
user: christos <christos%NetBSD.org@localhost>
date: Wed Nov 16 17:28:10 2011 +0000
description:
patch for: https://www.isc.org/software/bind/advisories/cve-2011-tbd
diffstat:
external/bsd/bind/dist/bin/named/query.c | 21 +++++++++------------
external/bsd/bind/dist/lib/dns/rbtdb.c | 6 +++---
2 files changed, 12 insertions(+), 15 deletions(-)
diffs (76 lines):
diff -r 08b8436bfa07 -r 6eac7c088d55 external/bsd/bind/dist/bin/named/query.c
--- a/external/bsd/bind/dist/bin/named/query.c Wed Nov 16 17:26:24 2011 +0000
+++ b/external/bsd/bind/dist/bin/named/query.c Wed Nov 16 17:28:10 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: query.c,v 1.6 2011/09/11 18:55:27 christos Exp $ */
+/* $NetBSD: query.c,v 1.7 2011/11/16 17:28:10 christos Exp $ */
/*
* Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
@@ -1395,11 +1395,9 @@
goto addname;
if (result == DNS_R_NCACHENXRRSET) {
dns_rdataset_disassociate(rdataset);
- /*
- * Negative cache entries don't have sigrdatasets.
- */
- INSIST(sigrdataset == NULL ||
- ! dns_rdataset_isassociated(sigrdataset));
+ if (sigrdataset != NULL &&
+ dns_rdataset_isassociated(sigrdataset))
+ dns_rdataset_disassociate(sigrdataset);
}
if (result == ISC_R_SUCCESS) {
mname = NULL;
@@ -1440,8 +1438,9 @@
goto addname;
if (result == DNS_R_NCACHENXRRSET) {
dns_rdataset_disassociate(rdataset);
- INSIST(sigrdataset == NULL ||
- ! dns_rdataset_isassociated(sigrdataset));
+ if (sigrdataset != NULL &&
+ dns_rdataset_isassociated(sigrdataset))
+ dns_rdataset_disassociate(sigrdataset);
}
if (result == ISC_R_SUCCESS) {
mname = NULL;
@@ -1891,10 +1890,8 @@
goto setcache;
if (result == DNS_R_NCACHENXRRSET) {
dns_rdataset_disassociate(rdataset);
- /*
- * Negative cache entries don't have sigrdatasets.
- */
- INSIST(! dns_rdataset_isassociated(sigrdataset));
+ if (dns_rdataset_isassociated(sigrdataset))
+ dns_rdataset_disassociate(sigrdataset);
}
if (result == ISC_R_SUCCESS) {
/* Remember the result as a cache */
diff -r 08b8436bfa07 -r 6eac7c088d55 external/bsd/bind/dist/lib/dns/rbtdb.c
--- a/external/bsd/bind/dist/lib/dns/rbtdb.c Wed Nov 16 17:26:24 2011 +0000
+++ b/external/bsd/bind/dist/lib/dns/rbtdb.c Wed Nov 16 17:28:10 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: rbtdb.c,v 1.10 2011/09/11 18:55:36 christos Exp $ */
+/* $NetBSD: rbtdb.c,v 1.11 2011/11/16 17:28:10 christos Exp $ */
/*
* Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
@@ -5055,7 +5055,7 @@
rdataset);
if (need_headerupdate(found, search.now))
update = found;
- if (foundsig != NULL) {
+ if (!NEGATIVE(found) && foundsig != NULL) {
bind_rdataset(search.rbtdb, node, foundsig, search.now,
sigrdataset);
if (need_headerupdate(foundsig, search.now))
@@ -5687,7 +5687,7 @@
}
if (found != NULL) {
bind_rdataset(rbtdb, rbtnode, found, now, rdataset);
- if (foundsig != NULL)
+ if (!NEGATIVE(found) && foundsig != NULL)
bind_rdataset(rbtdb, rbtnode, foundsig, now,
sigrdataset);
}
Home |
Main Index |
Thread Index |
Old Index