From 28d0a5960b2bc2ba4b3ff37d21791fb06d1abf9c Mon Sep 17 00:00:00 2001 From: Adam Tkac Date: Feb 12 2008 12:58:36 +0000 Subject: - 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) --- 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 { ] | [port ] | [port ] ); ... }; @@ -62,9 +62,9 @@ diff -up bind-9.5.0a7/doc/misc/options.edns bind-9.5.0a7/doc/misc/options edns-udp-size ; empty-contact ; empty-server ; -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 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 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