summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Tkac <atkac@fedoraproject.org>2008-02-12 12:58:36 +0000
committerAdam Tkac <atkac@fedoraproject.org>2008-02-12 12:58:36 +0000
commit28d0a5960b2bc2ba4b3ff37d21791fb06d1abf9c (patch)
tree682841f836afb70ef78ba2179fef758a809de494
parent47d257447e1ecfd067e5206ccee1c9571c6eb36e (diff)
- dropped bind-9.5-gssapi-header.patch (upstream) - dropped bind-9.5-CVE-2008-0122.patch (upstream) - improved patch for #400461 (segfault during sending notifies)
-rw-r--r--.cvsignore2
-rw-r--r--bind-9.3.2b1-PIE.patch4
-rw-r--r--bind-9.5-CVE-2008-0122.patch20
-rw-r--r--bind-9.5-edns.patch94
-rw-r--r--bind-9.5-gssapi-header.patch12
-rw-r--r--bind-9.5-sdb.patch4
-rw-r--r--bind-9.5-transfer-segv.patch206
-rw-r--r--bind.spec16
-rw-r--r--sources2
9 files changed, 72 insertions, 288 deletions
diff --git a/.cvsignore b/.cvsignore
index 872c865..462971c 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,4 +1,4 @@
-bind-9.5.0b1.tar.gz
+bind-9.5.0b2.tar.gz
bind-chroot.tar.bz2
config-2.tar
libbind-man.tar.gz
diff --git a/bind-9.3.2b1-PIE.patch b/bind-9.3.2b1-PIE.patch
index cd85e67..6404697 100644
--- a/bind-9.3.2b1-PIE.patch
+++ b/bind-9.3.2b1-PIE.patch
@@ -215,7 +215,7 @@
-OBJS = builtin.@O@ client.@O@ config.@O@ control.@O@ \
- controlconf.@O@ interfacemgr.@O@ \
- listenlist.@O@ log.@O@ logconf.@O@ main.@O@ notify.@O@ \
-- query.@O@ server.@O@ sortlist.@O@ \
+- query.@O@ server.@O@ sortlist.@O@ statschannel.@O@ \
- tkeyconf.@O@ tsigconf.@O@ update.@O@ xfrout.@O@ \
- zoneconf.@O@ \
- lwaddr.@O@ lwresd.@O@ lwdclient.@O@ lwderror.@O@ lwdgabn.@O@ \
@@ -223,7 +223,7 @@
+OBJS = builtin.o client.o config.o control.o \
+ controlconf.o interfacemgr.o \
+ listenlist.o log.o logconf.o main.o notify.o \
-+ query.o server.o sortlist.o \
++ query.o server.o sortlist.o statschannel.o \
+ tkeyconf.o tsigconf.o update.o xfrout.o \
+ zoneconf.o \
+ lwaddr.o lwresd.o lwdclient.o lwderror.o lwdgabn.o \
diff --git a/bind-9.5-CVE-2008-0122.patch b/bind-9.5-CVE-2008-0122.patch
deleted file mode 100644
index 38e0a4b..0000000
--- a/bind-9.5-CVE-2008-0122.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Index: lib/bind/inet/inet_network.c
-===================================================================
-RCS file: /var/snap/bind9/lib/bind/inet/inet_network.c,v
-retrieving revision 1.5
-retrieving revision 1.6
-diff -u -r1.5 -r1.6
---- lib/bind/inet/inet_network.c 27 Apr 2005 04:56:21 -0000 1.5
-+++ lib/bind/inet/inet_network.c 15 Jan 2008 04:02:01 -0000 1.6
-@@ -84,9 +84,9 @@
- }
- if (!digit)
- return (INADDR_NONE);
-+ if (pp >= parts + 4 || val > 0xffU)
-+ return (INADDR_NONE);
- if (*cp == '.') {
-- if (pp >= parts + 4 || val > 0xffU)
-- return (INADDR_NONE);
- *pp++ = val, cp++;
- goto again;
- }
diff --git a/bind-9.5-edns.patch b/bind-9.5-edns.patch
index cd37f9d..a3554cb 100644
--- a/bind-9.5-edns.patch
+++ b/bind-9.5-edns.patch
@@ -1,6 +1,6 @@
-diff -up bind-9.5.0a7/lib/dns/view.c.edns bind-9.5.0a7/lib/dns/view.c
---- bind-9.5.0a7/lib/dns/view.c.edns 2007-06-19 01:47:42.000000000 +0200
-+++ bind-9.5.0a7/lib/dns/view.c 2007-11-15 12:32:12.000000000 +0100
+diff -up bind-9.5.0b2/lib/dns/view.c.edns bind-9.5.0b2/lib/dns/view.c
+--- bind-9.5.0b2/lib/dns/view.c.edns 2007-06-19 01:47:42.000000000 +0200
++++ bind-9.5.0b2/lib/dns/view.c 2008-02-12 13:35:36.000000000 +0100
@@ -179,6 +179,7 @@ dns_view_create(isc_mem_t *mctx, dns_rda
view->flush = ISC_FALSE;
view->dlv = NULL;
@@ -9,29 +9,29 @@ diff -up bind-9.5.0a7/lib/dns/view.c.edns bind-9.5.0a7/lib/dns/view.c
dns_fixedname_init(&view->dlv_fixed);
result = dns_order_create(view->mctx, &view->order);
-diff -up bind-9.5.0a7/lib/dns/resolver.c.edns bind-9.5.0a7/lib/dns/resolver.c
---- bind-9.5.0a7/lib/dns/resolver.c.edns 2007-10-19 19:15:53.000000000 +0200
-+++ bind-9.5.0a7/lib/dns/resolver.c 2007-11-15 12:32:44.000000000 +0100
-@@ -1509,10 +1509,12 @@ resquery_send(resquery_t *query) {
- * The ADB does not know about servers with "edns no". Check this,
- * and then inform the ADB for future use.
- */
-- if ((query->addrinfo->flags & DNS_FETCHOPT_NOEDNS0) == 0 &&
-- peer != NULL &&
-- dns_peer_getsupportedns(peer, &useedns) == ISC_R_SUCCESS &&
-- !useedns)
-+ if (((query->addrinfo->flags & DNS_FETCHOPT_NOEDNS0) == 0 ||
-+ (query->options & DNS_FETCHOPT_NOEDNS0) == 0) &&
-+ (!(res->view->edns) ||
-+ (peer != NULL &&
-+ dns_peer_getsupportedns(peer, &useedns) == ISC_R_SUCCESS &&
-+ !useedns)))
- {
- query->options |= DNS_FETCHOPT_NOEDNS0;
- dns_adb_changeflags(fctx->adb,
-diff -up bind-9.5.0a7/lib/dns/include/dns/view.h.edns bind-9.5.0a7/lib/dns/include/dns/view.h
---- bind-9.5.0a7/lib/dns/include/dns/view.h.edns 2007-06-19 01:47:42.000000000 +0200
-+++ bind-9.5.0a7/lib/dns/include/dns/view.h 2007-11-15 12:32:12.000000000 +0100
+diff -up bind-9.5.0b2/lib/dns/resolver.c.edns bind-9.5.0b2/lib/dns/resolver.c
+--- bind-9.5.0b2/lib/dns/resolver.c.edns 2008-01-18 00:46:37.000000000 +0100
++++ bind-9.5.0b2/lib/dns/resolver.c 2008-02-12 13:50:04.000000000 +0100
+@@ -1514,10 +1514,12 @@ resquery_send(resquery_t *query) {
+ * The ADB does not know about servers with "edns no". Check this,
+ * and then inform the ADB for future use.
+ */
+- if ((query->addrinfo->flags & DNS_FETCHOPT_NOEDNS0) == 0 &&
+- peer != NULL &&
+- dns_peer_getsupportedns(peer, &useedns) == ISC_R_SUCCESS &&
+- !useedns)
++ if (((query->addrinfo->flags & DNS_FETCHOPT_NOEDNS0) == 0 ||
++ (query->options & DNS_FETCHOPT_NOEDNS0) == 0) &&
++ (!(res->view->edns) ||
++ (peer != NULL &&
++ dns_peer_getsupportedns(peer, &useedns) == ISC_R_SUCCESS &&
++ !useedns)))
+ {
+ query->options |= DNS_FETCHOPT_NOEDNS0;
+ dns_adb_changeflags(fctx->adb,
+diff -up bind-9.5.0b2/lib/dns/include/dns/view.h.edns bind-9.5.0b2/lib/dns/include/dns/view.h
+--- bind-9.5.0b2/lib/dns/include/dns/view.h.edns 2007-06-19 01:47:42.000000000 +0200
++++ bind-9.5.0b2/lib/dns/include/dns/view.h 2008-02-12 13:35:36.000000000 +0100
@@ -137,6 +137,7 @@ struct dns_view {
dns_name_t * dlv;
dns_fixedname_t dlv_fixed;
@@ -40,9 +40,9 @@ diff -up bind-9.5.0a7/lib/dns/include/dns/view.h.edns bind-9.5.0a7/lib/dns/inclu
/*
* Configurable data for server use only,
-diff -up bind-9.5.0a7/lib/isccfg/namedconf.c.edns bind-9.5.0a7/lib/isccfg/namedconf.c
---- bind-9.5.0a7/lib/isccfg/namedconf.c.edns 2007-09-26 05:22:45.000000000 +0200
-+++ bind-9.5.0a7/lib/isccfg/namedconf.c 2007-11-15 12:32:12.000000000 +0100
+diff -up bind-9.5.0b2/lib/isccfg/namedconf.c.edns bind-9.5.0b2/lib/isccfg/namedconf.c
+--- bind-9.5.0b2/lib/isccfg/namedconf.c.edns 2008-01-22 01:31:00.000000000 +0100
++++ bind-9.5.0b2/lib/isccfg/namedconf.c 2008-02-12 13:35:36.000000000 +0100
@@ -618,6 +618,7 @@ options_clauses[] = {
{ "deallocate-on-exit", &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE },
{ "directory", &cfg_type_qstring, CFG_CLAUSEFLAG_CALLBACK },
@@ -51,9 +51,9 @@ diff -up bind-9.5.0a7/lib/isccfg/namedconf.c.edns bind-9.5.0a7/lib/isccfg/namedc
{ "fake-iquery", &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE },
{ "files", &cfg_type_size, 0 },
{ "has-old-clients", &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE },
-diff -up bind-9.5.0a7/doc/misc/options.edns bind-9.5.0a7/doc/misc/options
---- bind-9.5.0a7/doc/misc/options.edns 2007-10-22 00:15:34.000000000 +0200
-+++ bind-9.5.0a7/doc/misc/options 2007-11-15 12:34:04.000000000 +0100
+diff -up bind-9.5.0b2/doc/misc/options.edns bind-9.5.0b2/doc/misc/options
+--- bind-9.5.0b2/doc/misc/options.edns 2008-01-22 02:45:23.000000000 +0100
++++ bind-9.5.0b2/doc/misc/options 2008-02-12 13:35:36.000000000 +0100
@@ -97,6 +97,7 @@ options {
<integer>] | <ipv4_address> [port <integer>] | <ipv6_address>
[port <integer>] ); ... };
@@ -62,9 +62,9 @@ diff -up bind-9.5.0a7/doc/misc/options.edns bind-9.5.0a7/doc/misc/options
edns-udp-size <integer>;
empty-contact <string>;
empty-server <string>;
-diff -up bind-9.5.0a7/bin/named/config.c.edns bind-9.5.0a7/bin/named/config.c
---- bind-9.5.0a7/bin/named/config.c.edns 2007-10-19 19:15:53.000000000 +0200
-+++ bind-9.5.0a7/bin/named/config.c 2007-11-15 12:34:33.000000000 +0100
+diff -up bind-9.5.0b2/bin/named/config.c.edns bind-9.5.0b2/bin/named/config.c
+--- bind-9.5.0b2/bin/named/config.c.edns 2008-01-23 00:27:35.000000000 +0100
++++ bind-9.5.0b2/bin/named/config.c 2008-02-12 13:35:36.000000000 +0100
@@ -137,6 +137,7 @@ options {\n\
acache-enable no;\n\
acache-cleaning-interval 60;\n\
@@ -73,26 +73,24 @@ diff -up bind-9.5.0a7/bin/named/config.c.edns bind-9.5.0a7/bin/named/config.c
dnssec-enable yes;\n\
dnssec-validation no; /* Make yes for 9.5. */ \n\
dnssec-accept-expired no;\n\
-diff -up bind-9.5.0a7/bin/named/server.c.edns bind-9.5.0a7/bin/named/server.c
---- bind-9.5.0a7/bin/named/server.c.edns 2007-10-18 03:37:49.000000000 +0200
-+++ bind-9.5.0a7/bin/named/server.c 2007-11-15 12:32:12.000000000 +0100
-@@ -1669,7 +1669,12 @@ configure_view(dns_view_t *view, const c
- dns_resolver_setclientsperquery(view->resolver,
- cfg_obj_asuint32(obj),
+diff -up bind-9.5.0b2/bin/named/server.c.edns bind-9.5.0b2/bin/named/server.c
+--- bind-9.5.0b2/bin/named/server.c.edns 2008-01-24 03:29:56.000000000 +0100
++++ bind-9.5.0b2/bin/named/server.c 2008-02-12 13:52:25.000000000 +0100
+@@ -1667,6 +1667,11 @@ configure_view(dns_view_t *view, const c
max_clients_per_query);
--
-+
-+ obj = NULL;
+
+ obj = NULL;
+ result = ns_config_get(maps, "edns", &obj);
+ INSIST(result == ISC_R_SUCCESS);
+ view->edns = cfg_obj_asboolean(obj);
+
- obj = NULL;
++ obj = NULL;
result = ns_config_get(maps, "dnssec-enable", &obj);
INSIST(result == ISC_R_SUCCESS);
-diff -up bind-9.5.0a7/bin/named/named.conf.5.edns bind-9.5.0a7/bin/named/named.conf.5
---- bind-9.5.0a7/bin/named/named.conf.5.edns 2007-10-22 00:15:32.000000000 +0200
-+++ bind-9.5.0a7/bin/named/named.conf.5 2007-11-15 12:32:12.000000000 +0100
+ view->enablednssec = cfg_obj_asboolean(obj);
+diff -up bind-9.5.0b2/bin/named/named.conf.5.edns bind-9.5.0b2/bin/named/named.conf.5
+--- bind-9.5.0b2/bin/named/named.conf.5.edns 2007-10-22 00:15:32.000000000 +0200
++++ bind-9.5.0b2/bin/named/named.conf.5 2008-02-12 13:35:36.000000000 +0100
@@ -160,6 +160,7 @@ options {
datasize \fIsize\fR;
directory \fIquoted_string\fR;
diff --git a/bind-9.5-gssapi-header.patch b/bind-9.5-gssapi-header.patch
deleted file mode 100644
index fe8c694..0000000
--- a/bind-9.5-gssapi-header.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up bind-9.5.0b1/lib/dns/include/dst/Makefile.in.gssapi-header bind-9.5.0b1/lib/dns/include/dst/Makefile.in
---- bind-9.5.0b1/lib/dns/include/dst/Makefile.in.gssapi-header 2007-12-11 15:50:55.000000000 +0100
-+++ bind-9.5.0b1/lib/dns/include/dst/Makefile.in 2007-12-11 15:51:15.000000000 +0100
-@@ -21,7 +21,7 @@ top_srcdir = @top_srcdir@
-
- @BIND9_VERSION@
-
--HEADERS = dst.h lib.h result.h
-+HEADERS = dst.h gssapi.h lib.h result.h
-
- SUBDIRS =
- TARGETS =
diff --git a/bind-9.5-sdb.patch b/bind-9.5-sdb.patch
index 0f30f1d..e879395 100644
--- a/bind-9.5-sdb.patch
+++ b/bind-9.5-sdb.patch
@@ -63,7 +63,7 @@ diff -up bind-9.5.0a6/bin/named/Makefile.in.sdb bind-9.5.0a6/bin/named/Makefile.
controlconf.o interfacemgr.o \
- listenlist.o log.o logconf.o main.o notify.o \
+ listenlist.o log.o logconf.o notify.o \
- query.o server.o sortlist.o \
+ query.o server.o sortlist.o statschannel.o \
tkeyconf.o tsigconf.o update.o xfrout.o \
zoneconf.o \
lwaddr.o lwresd.o lwdclient.o lwderror.o lwdgabn.o \
@@ -78,7 +78,7 @@ diff -up bind-9.5.0a6/bin/named/Makefile.in.sdb bind-9.5.0a6/bin/named/Makefile.
controlconf.c interfacemgr.c \
- listenlist.c log.c logconf.c main.c notify.c \
+ listenlist.c log.c logconf.c main.c main-sdb.c notify.c \
- query.c server.c sortlist.c \
+ query.c server.c sortlist.c statschannel.c \
tkeyconf.c tsigconf.c update.c xfrout.c \
zoneconf.c \
@@ -116,15 +115,26 @@ main.o: main.c
diff --git a/bind-9.5-transfer-segv.patch b/bind-9.5-transfer-segv.patch
index 656e0ff..8ba5456 100644
--- a/bind-9.5-transfer-segv.patch
+++ b/bind-9.5-transfer-segv.patch
@@ -1,197 +1,13 @@
diff -up bind-9.5.0b1/lib/dns/rbtdb.c.segv bind-9.5.0b1/lib/dns/rbtdb.c
---- bind-9.5.0b1/lib/dns/rbtdb.c.segv 2008-02-04 12:30:36.000000000 +0100
-+++ bind-9.5.0b1/lib/dns/rbtdb.c 2008-02-04 13:46:48.000000000 +0100
-@@ -763,23 +763,17 @@ free_rbtdb(dns_rbtdb_t *rbtdb, isc_boole
- isc_mem_put(rbtdb->common.mctx, rbtdb->current_version,
- sizeof(rbtdb_version_t));
+--- bind-9.5.0b1/lib/dns/rbtdb.c.segv 2008-02-11 14:52:12.000000000 +0100
++++ bind-9.5.0b1/lib/dns/rbtdb.c 2008-02-11 14:55:58.000000000 +0100
+@@ -1633,7 +1633,8 @@ decrement_reference(dns_rbtdb_t *rbtdb,
+ "decrement_reference: "
+ "dns_rbt_deletenode: %s",
+ isc_result_totext(result));
+- } else if (dns_rbtnode_refcurrent(node) == 0) {
++ } else if (rbtdb->deadnodes != NULL &&
++ dns_rbtnode_refcurrent(node) == 0) {
+ INSIST(!ISC_LINK_LINKED(node, deadlink));
+ ISC_LIST_APPEND(rbtdb->deadnodes[bucket], node, deadlink);
}
-- if (IS_CACHE(rbtdb)) {
-- /*
-- * We assume the number of remaining dead nodes is reasonably
-- * small; the overhead of unlinking all nodes here should be
-- * negligible.
-- */
-- for (i = 0; i < rbtdb->node_lock_count; i++) {
-- dns_rbtnode_t *node;
--
-- node = ISC_LIST_HEAD(rbtdb->deadnodes[i]);
-- while (node != NULL) {
-- ISC_LIST_UNLINK(rbtdb->deadnodes[i], node,
-- deadlink);
-- node = ISC_LIST_HEAD(rbtdb->deadnodes[i]);
-- }
-+
-+ for (i = 0; i < rbtdb->node_lock_count; i++) {
-+ dns_rbtnode_t *node;
-+
-+ node = ISC_LIST_HEAD(rbtdb->deadnodes[i]);
-+ while (node != NULL) {
-+ ISC_LIST_UNLINK(rbtdb->deadnodes[i], node, deadlink);
-+ node = ISC_LIST_HEAD(rbtdb->deadnodes[i]);
- }
- }
-+
- if (event == NULL)
- rbtdb->quantum = (rbtdb->task != NULL) ? 100 : 0;
- again:
-@@ -1912,6 +1906,7 @@ closeversion(dns_db_t *db, dns_dbversion
- }
-
- if (!EMPTY(cleanup_list)) {
-+ RWLOCK(&rbtdb->tree_lock, isc_rwlocktype_write);
- for (changed = HEAD(cleanup_list);
- changed != NULL;
- changed = next_changed) {
-@@ -1922,16 +1917,18 @@ closeversion(dns_db_t *db, dns_dbversion
- lock = &rbtdb->node_locks[rbtnode->locknum].lock;
-
- NODE_LOCK(lock, isc_rwlocktype_write);
-+ cleanup_dead_nodes(rbtdb, rbtnode->locknum);
- if (rollback)
- rollback_node(rbtnode, serial);
- decrement_reference(rbtdb, rbtnode, least_serial,
- isc_rwlocktype_write,
-- isc_rwlocktype_none);
-+ isc_rwlocktype_write);
- NODE_UNLOCK(lock, isc_rwlocktype_write);
-
- isc_mem_put(rbtdb->common.mctx, changed,
- sizeof(*changed));
- }
-+ RWUNLOCK(&rbtdb->tree_lock, isc_rwlocktype_write);
- }
-
- end:
-@@ -2009,6 +2006,7 @@ findnode(dns_db_t *db, dns_name_t *name,
- dns_name_t nodename;
- isc_result_t result;
- isc_rwlocktype_t locktype = isc_rwlocktype_read;
-+ isc_boolean_t need_relock;
-
- REQUIRE(VALID_RBTDB(rbtdb));
-
-@@ -2064,29 +2062,27 @@ findnode(dns_db_t *db, dns_name_t *name,
- * happen to hold a write lock on the tree, it's a good chance to purge
- * dead nodes.
- */
-- if (IS_CACHE(rbtdb)) {
-- isc_boolean_t need_relock = ISC_FALSE;
-+ need_relock = ISC_FALSE;
-+ NODE_WEAKLOCK(&rbtdb->node_locks[node->locknum].lock,
-+ isc_rwlocktype_read);
-+ if (ISC_LINK_LINKED(node, deadlink) && isc_rwlocktype_write)
-+ need_relock = ISC_TRUE;
-+ else if (!ISC_LIST_EMPTY(rbtdb->deadnodes[node->locknum]) &&
-+ locktype == isc_rwlocktype_write)
-+ need_relock = ISC_TRUE;
-+ NODE_WEAKUNLOCK(&rbtdb->node_locks[node->locknum].lock,
-+ isc_rwlocktype_read);
-+ if (need_relock) {
-
- NODE_WEAKLOCK(&rbtdb->node_locks[node->locknum].lock,
-- isc_rwlocktype_read);
-- if (ISC_LINK_LINKED(node, deadlink) && isc_rwlocktype_write)
-- need_relock = ISC_TRUE;
-- else if (!ISC_LIST_EMPTY(rbtdb->deadnodes[node->locknum]) &&
-- locktype == isc_rwlocktype_write)
-- need_relock = ISC_TRUE;
-+ isc_rwlocktype_write);
-+ if (ISC_LINK_LINKED(node, deadlink))
-+ ISC_LIST_UNLINK(rbtdb->deadnodes[node->locknum],
-+ node, deadlink);
-+ if (locktype == isc_rwlocktype_write)
-+ cleanup_dead_nodes(rbtdb, node->locknum);
- NODE_WEAKUNLOCK(&rbtdb->node_locks[node->locknum].lock,
-- isc_rwlocktype_read);
-- if (need_relock) {
-- NODE_WEAKLOCK(&rbtdb->node_locks[node->locknum].lock,
-- isc_rwlocktype_write);
-- if (ISC_LINK_LINKED(node, deadlink))
-- ISC_LIST_UNLINK(rbtdb->deadnodes[node->locknum],
-- node, deadlink);
-- if (locktype == isc_rwlocktype_write)
-- cleanup_dead_nodes(rbtdb, node->locknum);
-- NODE_WEAKUNLOCK(&rbtdb->node_locks[node->locknum].lock,
-- isc_rwlocktype_write);
-- }
-+ isc_rwlocktype_write);
- }
-
- NODE_STRONGUNLOCK(&rbtdb->node_locks[node->locknum].lock);
-@@ -6149,15 +6145,6 @@ dns_rbtdb_create
- for (i = 0; i < (int)rbtdb->node_lock_count; i++)
- ISC_LIST_INIT(rbtdb->rdatasets[i]);
-
-- rbtdb->deadnodes = isc_mem_get(mctx, rbtdb->node_lock_count *
-- sizeof(rbtnodelist_t));
-- if (rbtdb->deadnodes == NULL) {
-- result = ISC_R_NOMEMORY;
-- goto cleanup_rdatasets;
-- }
-- for (i = 0; i < (int)rbtdb->node_lock_count; i++)
-- ISC_LIST_INIT(rbtdb->deadnodes[i]);
--
- /*
- * Create the heaps.
- */
-@@ -6165,7 +6152,7 @@ dns_rbtdb_create
- sizeof(isc_heap_t *));
- if (rbtdb->heaps == NULL) {
- result = ISC_R_NOMEMORY;
-- goto cleanup_deadnodes;
-+ goto cleanup_rdatasets;
- }
- for (i = 0; i < (int)rbtdb->node_lock_count; i++)
- rbtdb->heaps[i] = NULL;
-@@ -6178,10 +6165,18 @@ dns_rbtdb_create
- }
- } else {
- rbtdb->rdatasets = NULL;
-- rbtdb->deadnodes = NULL;
- rbtdb->heaps = NULL;
- }
-
-+ rbtdb->deadnodes = isc_mem_get(mctx, rbtdb->node_lock_count *
-+ sizeof(rbtnodelist_t));
-+ if (rbtdb->deadnodes == NULL) {
-+ result = ISC_R_NOMEMORY;
-+ goto cleanup_heaps;
-+ }
-+ for (i = 0; i < (int)rbtdb->node_lock_count; i++)
-+ ISC_LIST_INIT(rbtdb->deadnodes[i]);
-+
- rbtdb->active = rbtdb->node_lock_count;
-
- for (i = 0; i < (int)(rbtdb->node_lock_count); i++) {
-@@ -6197,7 +6192,7 @@ dns_rbtdb_create
- isc_refcount_decrement(&rbtdb->node_locks[i].references, NULL);
- isc_refcount_destroy(&rbtdb->node_locks[i].references);
- }
-- goto cleanup_heaps;
-+ goto cleanup_deadnodes;
- }
- rbtdb->node_locks[i].exiting = ISC_FALSE;
- }
-@@ -6310,6 +6305,10 @@ dns_rbtdb_create
-
- return (ISC_R_SUCCESS);
-
-+ cleanup_deadnodes:
-+ isc_mem_put(mctx, rbtdb->deadnodes,
-+ rbtdb->node_lock_count * sizeof(rbtnodelist_t));
-+
- cleanup_heaps:
- if (rbtdb->heaps != NULL) {
- for (i = 0 ; i < (int)rbtdb->node_lock_count ; i++)
-@@ -6319,11 +6318,6 @@ dns_rbtdb_create
- rbtdb->node_lock_count * sizeof(isc_heap_t *));
- }
-
-- cleanup_deadnodes:
-- if (rbtdb->deadnodes != NULL)
-- isc_mem_put(mctx, rbtdb->deadnodes,
-- rbtdb->node_lock_count * sizeof(rbtnodelist_t));
--
- cleanup_rdatasets:
- if (rbtdb->rdatasets != NULL)
- isc_mem_put(mctx, rbtdb->rdatasets, rbtdb->node_lock_count *
diff --git a/bind.spec b/bind.spec
index 55bc594..b1da425 100644
--- a/bind.spec
+++ b/bind.spec
@@ -2,7 +2,7 @@
# Red Hat BIND package .spec file
#
-%define RELEASEVER b1
+%define RELEASEVER b2
%{?!SDB: %define SDB 1}
%{?!LIBBIND: %define LIBBIND 1}
@@ -20,7 +20,7 @@ Summary: The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) serv
Name: bind
License: ISC
Version: 9.5.0
-Release: 24.%{RELEASEVER}%{?dist}
+Release: 25.%{RELEASEVER}%{?dist}
Epoch: 32
Url: http://www.isc.org/products/BIND/
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -62,8 +62,6 @@ Patch69: bind-9.5.0-generate-xml.patch
Patch71: bind-9.5-overflow.patch
Patch72: bind-9.5-dlz-64bit.patch
Patch80: bind-9.5-edns.patch
-Patch84: bind-9.5-gssapi-header.patch
-Patch86: bind-9.5-CVE-2008-0122.patch
Patch87: bind-9.5-transfer-segv.patch
# SDB patches
@@ -252,9 +250,7 @@ cp -fp contrib/dbus/{dbus_mgr.h,dbus_service.h} bin/named/include/named
%patch73 -p1 -b .libidn
%patch80 -p1 -b .edns
%patch83 -p1 -b .libidn2
-%patch84 -p1 -b .gssapi-header
%patch85 -p1 -b .libidn3
-%patch86 -p0 -b .CVE-2008-0122
%patch87 -p1 -b .transfer-segv
:;
@@ -412,7 +408,7 @@ for f in my.internal.zone.db slaves/my.slave.internal.zone.db slaves/my.ddns.int
echo '@ in soa localhost. root 1 3H 15M 1W 1D
ns localhost.' > sample/var/named/$f;
done
-/usr/bin/tail -n '+'`/bin/egrep -n '\\$Id: bind.spec,v 1.241 2008/02/04 13:13:03 atkac Exp $/+1/' | bc` bin/rndc/rndc.conf | sed '/Sample rndc configuration file./{p;i\
+/usr/bin/tail -n '+'`/bin/egrep -n '\\$Id: bind.spec,v 1.242 2008/02/12 12:58:35 atkac Exp $/+1/' | bc` bin/rndc/rndc.conf | sed '/Sample rndc configuration file./{p;i\
*\
* NOTE: you only need to create this file if it is to\
* differ from the following default contents:
@@ -672,6 +668,12 @@ rm -rf ${RPM_BUILD_ROOT}
%{_sbindir}/bind-chroot-admin
%changelog
+* Tue Feb 12 2008 Adam Tkac <atkac redhat com> 32:9.5.0-25.b2
+- 9.5.0b2
+ - dropped bind-9.5-gssapi-header.patch (upstream)
+ - dropped bind-9.5-CVE-2008-0122.patch (upstream)
+- improved patch for #400461 (segfault during sending notifies)
+
* Mon Feb 04 2008 Adam Tkac <atkac redhat com> 32:9.5.0-24.b1
- fixed segfault during sending notifies (#400461)
diff --git a/sources b/sources
index 1e27c93..88a7b8c 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-0dcc5331641362447552cb6016c8a9f1 bind-9.5.0b1.tar.gz
+d64e5ac8b5d98508b450bf999c33e7df bind-9.5.0b2.tar.gz
4faa4395b955e5f8a3d50f308b9fabc8 bind-chroot.tar.bz2
9c3905b6aece5b4aa0deba6029437483 config-2.tar
13fef79f99fcefebb51d84b08805de51 libbind-man.tar.gz