diff --git a/bind-96-dyndb.patch b/bind-96-dyndb.patch index 211b861..94bf019 100644 --- a/bind-96-dyndb.patch +++ b/bind-96-dyndb.patch @@ -156,20 +156,6 @@ diff -up bind-9.8.0-P4/bin/named/server.c.dyndb bind-9.8.0-P4/bin/named/server.c /* * Parse the global default pseudo-config file. */ -@@ -5542,6 +5642,13 @@ loadconfig(ns_server_t *server) { - static isc_result_t - reload(ns_server_t *server) { - isc_result_t result; -+ -+ /* Ensure there is no other access to the server */ -+ result = isc_task_beginexclusive(server->task); -+ RUNTIME_CHECK(result == ISC_R_SUCCESS); -+ dns_dynamic_db_cleanup(ISC_FALSE); -+ isc_task_endexclusive(server->task); -+ - CHECK(loadconfig(server)); - - result = load_zones(server, ISC_FALSE); diff -up bind-9.8.0-P4/lib/dns/dynamic_db.c.dyndb bind-9.8.0-P4/lib/dns/dynamic_db.c --- bind-9.8.0-P4/lib/dns/dynamic_db.c.dyndb 2011-07-26 15:36:04.047778520 +0200 +++ bind-9.8.0-P4/lib/dns/dynamic_db.c 2011-07-26 15:36:04.047778520 +0200 diff --git a/bind.spec b/bind.spec index a97a69f..7d8a545 100644 --- a/bind.spec +++ b/bind.spec @@ -22,7 +22,7 @@ Summary: The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) serv Name: bind License: ISC Version: 9.8.0 -Release: 8.%{PATCHVER}%{?dist} +Release: 9.%{PATCHVER}%{?dist} Epoch: 32 Url: http://www.isc.org/products/BIND/ Buildroot:%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -64,6 +64,7 @@ Patch112:bind97-rh645544.patch Patch113:bind97-rh674334.patch Patch115:bind97-cleanup.patch Patch116:bind98-includes.patch +Patch117:bind98-rh725741.patch # SDB patches Patch11: bind-9.3.2b2-sdbsrc.patch @@ -247,6 +248,7 @@ Based on the code from Jan "Yenya" Kasprzak %patch10 -p1 -b .PIE %patch16 -p1 -b .redhat_doc %patch104 -p1 -b .dyndb +%patch117 -p1 -b .rh725741 %if %{SDB} %patch101 -p1 -b .old-api mkdir bin/named-sdb @@ -770,6 +772,9 @@ rm -rf ${RPM_BUILD_ROOT} %endif %changelog +* Wed Aug 03 2011 Adam Tkac 32:9.8.0-9.P4 +- improve patch for #725741 + * Tue Jul 26 2011 Adam Tkac 32:9.8.0-8.P4 - named could have crashed during reload when dyndb module is used (#725741) diff --git a/bind98-rh725741.patch b/bind98-rh725741.patch new file mode 100644 index 0000000..53d924d --- /dev/null +++ b/bind98-rh725741.patch @@ -0,0 +1,24 @@ +diff -up bind-9.8.0-P4/bin/named/main.c.rh725741 bind-9.8.0-P4/bin/named/main.c +--- bind-9.8.0-P4/bin/named/main.c.rh725741 2011-08-03 15:20:28.487516386 +0200 ++++ bind-9.8.0-P4/bin/named/main.c 2011-08-03 15:20:50.197514932 +0200 +@@ -872,8 +872,6 @@ setup(void) { + + static void + cleanup(void) { +- dns_dynamic_db_cleanup(ISC_TRUE); +- + destroy_managers(); + + ns_server_destroy(&ns_g_server); +diff -up bind-9.8.0-P4/bin/named/server.c.rh725741 bind-9.8.0-P4/bin/named/server.c +--- bind-9.8.0-P4/bin/named/server.c.rh725741 2011-08-03 15:20:42.009515447 +0200 ++++ bind-9.8.0-P4/bin/named/server.c 2011-08-03 15:21:01.878514035 +0200 +@@ -5263,6 +5263,8 @@ shutdown_server(isc_task_t *task, isc_ev + dns_view_detach(&view); + } + ++ dns_dynamic_db_cleanup(ISC_TRUE); ++ + while ((nsc = ISC_LIST_HEAD(server->cachelist)) != NULL) { + ISC_LIST_UNLINK(server->cachelist, nsc, link); + dns_cache_detach(&nsc->cache);