diff --git a/.gitignore b/.gitignore index 7960188..d2a7ef2 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ bind-9.7.2b1.tar.gz /bind-9.9.4.tar.gz /config-12.tar.bz2 /bind-9.9.5b1.tar.gz +/bind-9.9.5rc2.tar.gz diff --git a/bind-9.9.3-include-update-h.patch b/bind-9.9.3-include-update-h.patch index f7ea486..40a18dc 100644 --- a/bind-9.9.3-include-update-h.patch +++ b/bind-9.9.3-include-update-h.patch @@ -1,12 +1,12 @@ -diff -up bind-9.9.3/lib/dns/include/dns/Makefile.in.update bind-9.9.3/lib/dns/include/dns/Makefile.in ---- bind-9.9.3/lib/dns/include/dns/Makefile.in.update 2013-06-03 09:29:41.049197873 +0200 -+++ bind-9.9.3/lib/dns/include/dns/Makefile.in 2013-06-03 09:30:09.229213170 +0200 -@@ -30,7 +30,7 @@ HEADERS = acl.h adb.h byaddr.h cache.h c +diff -up bind-9.9.5rc2/lib/dns/include/dns/Makefile.in.update bind-9.9.5rc2/lib/dns/include/dns/Makefile.in +--- bind-9.9.5rc2/lib/dns/include/dns/Makefile.in.update 2014-01-24 12:50:47.811725841 +0100 ++++ bind-9.9.5rc2/lib/dns/include/dns/Makefile.in 2014-01-24 12:51:33.866701688 +0100 +@@ -31,7 +31,7 @@ HEADERS = acl.h adb.h byaddr.h cache.h c rdata.h rdataclass.h rdatalist.h rdataset.h rdatasetiter.h \ rdataslab.h rdatatype.h request.h resolver.h result.h \ - rootns.h rpz.h sdb.h sdlz.h secalg.h secproto.h soa.h ssu.h \ -- tcpmsg.h time.h tkey.h tsig.h ttl.h types.h \ -+ tcpmsg.h time.h tkey.h tsig.h ttl.h types.h update.h\ - validator.h version.h view.h xfrin.h zone.h zonekey.h zt.h \ - forward.h rrl.h + rootns.h rpz.h rrl.h sdb.h sdlz.h secalg.h secproto.h soa.h ssu.h \ +- tcpmsg.h time.h tkey.h tsec.h tsig.h ttl.h types.h \ ++ tcpmsg.h time.h tkey.h tsec.h tsig.h ttl.h types.h update.h \ + validator.h version.h view.h xfrin.h zone.h zonekey.h zt.h + GENHEADERS = enumclass.h enumtype.h rdatastruct.h diff --git a/bind-9.9.4-CVE-2014-0591.patch b/bind-9.9.4-CVE-2014-0591.patch deleted file mode 100644 index ba225b1..0000000 --- a/bind-9.9.4-CVE-2014-0591.patch +++ /dev/null @@ -1,53 +0,0 @@ -diff -pruN bind-9.9.4-P1/bin/named/query.c bind-9.9.4-P2/bin/named/query.c ---- bind-9.9.4-P1/bin/named/query.c 2013-10-16 01:04:32.000000000 +0200 -+++ bind-9.9.4-P2/bin/named/query.c 2013-12-20 01:28:28.000000000 +0100 -@@ -5260,8 +5260,7 @@ query_findclosestnsec3(dns_name_t *qname - dns_fixedname_t fixed; - dns_hash_t hash; - dns_name_t name; -- int order; -- unsigned int count; -+ unsigned int skip = 0, labels; - dns_rdata_nsec3_t nsec3; - dns_rdata_t rdata = DNS_RDATA_INIT; - isc_boolean_t optout; -@@ -5276,6 +5275,7 @@ query_findclosestnsec3(dns_name_t *qname - - dns_name_init(&name, NULL); - dns_name_clone(qname, &name); -+ labels = dns_name_countlabels(&name); - dns_clientinfomethods_init(&cm, ns_client_sourceip); - dns_clientinfo_init(&ci, client); - -@@ -5309,13 +5309,14 @@ query_findclosestnsec3(dns_name_t *qname - dns_rdata_reset(&rdata); - optout = ISC_TF((nsec3.flags & DNS_NSEC3FLAG_OPTOUT) != 0); - if (found != NULL && optout && -- dns_name_fullcompare(&name, dns_db_origin(db), &order, -- &count) == dns_namereln_subdomain) { -+ dns_name_issubdomain(&name, dns_db_origin(db))) -+ { - dns_rdataset_disassociate(rdataset); - if (dns_rdataset_isassociated(sigrdataset)) - dns_rdataset_disassociate(sigrdataset); -- count = dns_name_countlabels(&name) - 1; -- dns_name_getlabelsequence(&name, 1, count, &name); -+ skip++; -+ dns_name_getlabelsequence(qname, skip, labels - skip, -+ &name); - ns_client_log(client, DNS_LOGCATEGORY_DNSSEC, - NS_LOGMODULE_QUERY, ISC_LOG_DEBUG(3), - "looking for closest provable encloser"); -@@ -5333,7 +5334,11 @@ query_findclosestnsec3(dns_name_t *qname - ns_client_log(client, DNS_LOGCATEGORY_DNSSEC, - NS_LOGMODULE_QUERY, ISC_LOG_WARNING, - "expected covering NSEC3, got an exact match"); -- if (found != NULL) -+ if (found == qname) { -+ if (skip != 0U) -+ dns_name_getlabelsequence(qname, skip, labels - skip, -+ found); -+ } else if (found != NULL) - dns_name_copy(&name, found, NULL); - return; - } diff --git a/bind-9.9.5-nonexistence-of-resolv-conf.patch b/bind-9.9.5-nonexistence-of-resolv-conf.patch deleted file mode 100644 index 00453ba..0000000 --- a/bind-9.9.5-nonexistence-of-resolv-conf.patch +++ /dev/null @@ -1,113 +0,0 @@ -From e3d1d75a58dcc6bdb7fa7a9a3147ffd297407c76 Mon Sep 17 00:00:00 2001 -From: Mark Andrews via RT -Date: Wed, 15 Jan 2014 02:30:27 +0000 -Subject: [PATCH] non-existance of resolv.conf should not be fatal - -I've just put the following in for review. The open question is whether -we should return ISC_R_SUCCESS or some error code, when the file does not -exist, and fix the callers. - -This should be enough to allow you to continue testing. - -Mark - -commit 1992f682728798ef73db89351285f03de6d52043 -Author: Mark Andrews -Date: Wed Jan 15 13:25:22 2014 +1100 ---- - lib/irs/resconf.c | 75 +++++++++++++++++++++++++++++-------------------------- - 1 file changed, 40 insertions(+), 35 deletions(-) - -diff --git a/lib/irs/resconf.c b/lib/irs/resconf.c -index 88bdac1..8319dc6 100644 ---- a/lib/irs/resconf.c -+++ b/lib/irs/resconf.c -@@ -507,45 +507,50 @@ irs_resconf_load(isc_mem_t *mctx, const char *filename, irs_resconf_t **confp) - conf->search[i] = NULL; - - errno = 0; -- if ((fp = fopen(filename, "r")) == NULL) { -- isc_mem_put(mctx, conf, sizeof(*conf)); -- return (ISC_R_INVALIDFILE); -- } -- -- ret = ISC_R_SUCCESS; -- do { -- stopchar = getword(fp, word, sizeof(word)); -- if (stopchar == EOF) { -- rval = ISC_R_SUCCESS; -- POST(rval); -- break; -- } -- -- if (strlen(word) == 0U) -- rval = ISC_R_SUCCESS; -- else if (strcmp(word, "nameserver") == 0) -- rval = resconf_parsenameserver(conf, fp); -- else if (strcmp(word, "domain") == 0) -- rval = resconf_parsedomain(conf, fp); -- else if (strcmp(word, "search") == 0) -- rval = resconf_parsesearch(conf, fp); -- else if (strcmp(word, "sortlist") == 0) -- rval = resconf_parsesortlist(conf, fp); -- else if (strcmp(word, "options") == 0) -- rval = resconf_parseoption(conf, fp); -- else { -- /* unrecognised word. Ignore entire line */ -- rval = ISC_R_SUCCESS; -- stopchar = eatline(fp); -+ if ((fp = fopen(filename, "r")) != NULL) { -+ ret = ISC_R_SUCCESS; -+ do { -+ stopchar = getword(fp, word, sizeof(word)); - if (stopchar == EOF) { -+ rval = ISC_R_SUCCESS; -+ POST(rval); - break; - } -- } -- if (ret == ISC_R_SUCCESS && rval != ISC_R_SUCCESS) -- ret = rval; -- } while (1); - -- fclose(fp); -+ if (strlen(word) == 0U) -+ rval = ISC_R_SUCCESS; -+ else if (strcmp(word, "nameserver") == 0) -+ rval = resconf_parsenameserver(conf, fp); -+ else if (strcmp(word, "domain") == 0) -+ rval = resconf_parsedomain(conf, fp); -+ else if (strcmp(word, "search") == 0) -+ rval = resconf_parsesearch(conf, fp); -+ else if (strcmp(word, "sortlist") == 0) -+ rval = resconf_parsesortlist(conf, fp); -+ else if (strcmp(word, "options") == 0) -+ rval = resconf_parseoption(conf, fp); -+ else { -+ /* unrecognised word. Ignore entire line */ -+ rval = ISC_R_SUCCESS; -+ stopchar = eatline(fp); -+ if (stopchar == EOF) { -+ break; -+ } -+ } -+ if (ret == ISC_R_SUCCESS && rval != ISC_R_SUCCESS) -+ ret = rval; -+ } while (1); -+ -+ fclose(fp); -+ } else { -+ switch (errno) { -+ case ENOENT: -+ break; -+ default: -+ isc_mem_put(mctx, conf, sizeof(*conf)); -+ return (ISC_R_INVALIDFILE); -+ } -+ } - - /* If we don't find a nameserver fall back to localhost */ - if (conf->numns == 0) { --- -1.8.4.2 - diff --git a/bind-96-dyndb.patch b/bind-99-dyndb.patch similarity index 83% rename from bind-96-dyndb.patch rename to bind-99-dyndb.patch index 7593059..606a904 100644 --- a/bind-96-dyndb.patch +++ b/bind-99-dyndb.patch @@ -1,6 +1,6 @@ -diff -up bind-9.9.2/bin/named/main.c.dyndb bind-9.9.2/bin/named/main.c ---- bind-9.9.2/bin/named/main.c.dyndb 2012-09-27 02:35:19.000000000 +0200 -+++ bind-9.9.2/bin/named/main.c 2012-10-11 13:13:10.626497598 +0200 +diff -up bind-9.9.5rc2/bin/named/main.c.dyndb bind-9.9.5rc2/bin/named/main.c +--- bind-9.9.5rc2/bin/named/main.c.dyndb 2014-01-17 04:27:12.000000000 +0100 ++++ bind-9.9.5rc2/bin/named/main.c 2014-01-24 10:45:59.047572064 +0100 @@ -45,6 +45,7 @@ #include @@ -9,9 +9,9 @@ diff -up bind-9.9.2/bin/named/main.c.dyndb bind-9.9.2/bin/named/main.c #include #include #include -diff -up bind-9.9.2/bin/named/server.c.dyndb bind-9.9.2/bin/named/server.c ---- bind-9.9.2/bin/named/server.c.dyndb 2012-09-27 02:35:19.000000000 +0200 -+++ bind-9.9.2/bin/named/server.c 2012-10-11 13:13:10.630497590 +0200 +diff -up bind-9.9.5rc2/bin/named/server.c.dyndb bind-9.9.5rc2/bin/named/server.c +--- bind-9.9.5rc2/bin/named/server.c.dyndb 2014-01-17 04:27:12.000000000 +0100 ++++ bind-9.9.5rc2/bin/named/server.c 2014-01-24 10:45:59.048572063 +0100 @@ -63,6 +63,7 @@ #include #include @@ -20,7 +20,7 @@ diff -up bind-9.9.2/bin/named/server.c.dyndb bind-9.9.2/bin/named/server.c #include #include #include -@@ -1161,6 +1162,72 @@ configure_peer(const cfg_obj_t *cpeer, i +@@ -1249,6 +1250,72 @@ configure_peer(const cfg_obj_t *cpeer, i } static isc_result_t @@ -93,7 +93,7 @@ diff -up bind-9.9.2/bin/named/server.c.dyndb bind-9.9.2/bin/named/server.c disable_algorithms(const cfg_obj_t *disabled, dns_resolver_t *resolver) { isc_result_t result; const cfg_obj_t *algorithms; -@@ -1586,6 +1653,7 @@ configure_view(dns_view_t *view, cfg_obj +@@ -2071,6 +2138,7 @@ configure_view(dns_view_t *view, cfg_obj const cfg_obj_t *dlz; unsigned int dlzargc; char **dlzargv; @@ -101,7 +101,7 @@ diff -up bind-9.9.2/bin/named/server.c.dyndb bind-9.9.2/bin/named/server.c const cfg_obj_t *disabled; const cfg_obj_t *obj; const cfg_listelt_t *element; -@@ -1816,6 +1884,8 @@ configure_view(dns_view_t *view, cfg_obj +@@ -2355,6 +2423,8 @@ configure_view(dns_view_t *view, cfg_obj } } @@ -110,7 +110,7 @@ diff -up bind-9.9.2/bin/named/server.c.dyndb bind-9.9.2/bin/named/server.c /* * Obtain configuration parameters that affect the decision of whether * we can reuse/share an existing cache. -@@ -2721,6 +2791,37 @@ configure_view(dns_view_t *view, cfg_obj +@@ -3264,6 +3334,37 @@ configure_view(dns_view_t *view, cfg_obj dns_view_setrootdelonly(view, ISC_FALSE); /* @@ -148,7 +148,7 @@ diff -up bind-9.9.2/bin/named/server.c.dyndb bind-9.9.2/bin/named/server.c * Setup automatic empty zones. If recursion is off then * they are disabled by default. */ -@@ -4388,6 +4489,7 @@ load_configuration(const char *filename, +@@ -4917,6 +5018,7 @@ load_configuration(const char *filename, cfg_aclconfctx_detach(&ns_g_aclconfctx); CHECK(cfg_aclconfctx_create(ns_g_mctx, &ns_g_aclconfctx)); @@ -156,7 +156,7 @@ diff -up bind-9.9.2/bin/named/server.c.dyndb bind-9.9.2/bin/named/server.c /* * Parse the global default pseudo-config file. */ -@@ -5493,6 +5595,8 @@ shutdown_server(isc_task_t *task, isc_ev +@@ -6046,6 +6148,8 @@ shutdown_server(isc_task_t *task, isc_ev dns_view_detach(&view); } @@ -165,9 +165,9 @@ diff -up bind-9.9.2/bin/named/server.c.dyndb bind-9.9.2/bin/named/server.c while ((nsc = ISC_LIST_HEAD(server->cachelist)) != NULL) { ISC_LIST_UNLINK(server->cachelist, nsc, link); dns_cache_detach(&nsc->cache); -diff -up bind-9.9.2/lib/dns/dynamic_db.c.dyndb bind-9.9.2/lib/dns/dynamic_db.c ---- bind-9.9.2/lib/dns/dynamic_db.c.dyndb 2012-10-11 13:13:10.630497590 +0200 -+++ bind-9.9.2/lib/dns/dynamic_db.c 2012-10-11 13:13:10.630497590 +0200 +diff -up bind-9.9.5rc2/lib/dns/dynamic_db.c.dyndb bind-9.9.5rc2/lib/dns/dynamic_db.c +--- bind-9.9.5rc2/lib/dns/dynamic_db.c.dyndb 2014-01-24 10:45:59.049572063 +0100 ++++ bind-9.9.5rc2/lib/dns/dynamic_db.c 2014-01-24 10:45:59.049572063 +0100 @@ -0,0 +1,366 @@ +/* + * Copyright (C) 2008-2011 Red Hat, Inc. @@ -535,9 +535,9 @@ diff -up bind-9.9.2/lib/dns/dynamic_db.c.dyndb bind-9.9.2/lib/dns/dynamic_db.c + + return args->timermgr; +} -diff -up bind-9.9.2/lib/dns/include/dns/dynamic_db.h.dyndb bind-9.9.2/lib/dns/include/dns/dynamic_db.h ---- bind-9.9.2/lib/dns/include/dns/dynamic_db.h.dyndb 2012-10-11 13:13:10.631497588 +0200 -+++ bind-9.9.2/lib/dns/include/dns/dynamic_db.h 2012-10-11 13:13:10.631497588 +0200 +diff -up bind-9.9.5rc2/lib/dns/include/dns/dynamic_db.h.dyndb bind-9.9.5rc2/lib/dns/include/dns/dynamic_db.h +--- bind-9.9.5rc2/lib/dns/include/dns/dynamic_db.h.dyndb 2014-01-24 10:45:59.049572063 +0100 ++++ bind-9.9.5rc2/lib/dns/include/dns/dynamic_db.h 2014-01-24 10:45:59.049572063 +0100 @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2008-2011 Red Hat, Inc. @@ -589,10 +589,10 @@ diff -up bind-9.9.2/lib/dns/include/dns/dynamic_db.h.dyndb bind-9.9.2/lib/dns/in +isc_timermgr_t *dns_dyndb_get_timermgr(dns_dyndb_arguments_t *args); + +#endif -diff -up bind-9.9.2/lib/dns/include/dns/log.h.dyndb bind-9.9.2/lib/dns/include/dns/log.h ---- bind-9.9.2/lib/dns/include/dns/log.h.dyndb 2012-09-27 02:35:19.000000000 +0200 -+++ bind-9.9.2/lib/dns/include/dns/log.h 2012-10-11 13:13:45.309399482 +0200 -@@ -76,6 +76,7 @@ LIBDNS_EXTERNAL_DATA extern isc_logmodul +diff -up bind-9.9.5rc2/lib/dns/include/dns/log.h.dyndb bind-9.9.5rc2/lib/dns/include/dns/log.h +--- bind-9.9.5rc2/lib/dns/include/dns/log.h.dyndb 2014-01-17 04:27:12.000000000 +0100 ++++ bind-9.9.5rc2/lib/dns/include/dns/log.h 2014-01-24 10:45:59.049572063 +0100 +@@ -77,6 +77,7 @@ LIBDNS_EXTERNAL_DATA extern isc_logmodul #define DNS_LOGMODULE_DLZ (&dns_modules[26]) #define DNS_LOGMODULE_DNSSEC (&dns_modules[27]) #define DNS_LOGMODULE_CRYPTO (&dns_modules[28]) @@ -600,21 +600,21 @@ diff -up bind-9.9.2/lib/dns/include/dns/log.h.dyndb bind-9.9.2/lib/dns/include/d ISC_LANG_BEGINDECLS -diff -up bind-9.9.2/lib/dns/include/dns/Makefile.in.dyndb bind-9.9.2/lib/dns/include/dns/Makefile.in ---- bind-9.9.2/lib/dns/include/dns/Makefile.in.dyndb 2012-09-27 02:35:19.000000000 +0200 -+++ bind-9.9.2/lib/dns/include/dns/Makefile.in 2012-10-11 13:13:10.632497587 +0200 -@@ -22,7 +22,7 @@ top_srcdir = @top_srcdir@ - @BIND9_VERSION@ +diff -up bind-9.9.5rc2/lib/dns/include/dns/Makefile.in.dyndb bind-9.9.5rc2/lib/dns/include/dns/Makefile.in +--- bind-9.9.5rc2/lib/dns/include/dns/Makefile.in.dyndb 2014-01-24 10:45:59.049572063 +0100 ++++ bind-9.9.5rc2/lib/dns/include/dns/Makefile.in 2014-01-24 12:43:29.234908816 +0100 +@@ -23,7 +23,7 @@ top_srcdir = @top_srcdir@ HEADERS = acl.h adb.h byaddr.h cache.h callbacks.h cert.h compress.h \ -- clientinfo.h db.h dbiterator.h dbtable.h diff.h dispatch.h \ -+ clientinfo.h db.h dbiterator.h dbtable.h diff.h dispatch.h dynamic_db.h \ + client.h clientinfo.h compress.h \ +- db.h dbiterator.h dbtable.h diff.h dispatch.h \ ++ db.h dbiterator.h dbtable.h diff.h dispatch.h dynamic_db.h \ dlz.h dnssec.h ds.h events.h fixedname.h iptable.h journal.h \ keyflags.h keytable.h keyvalues.h lib.h log.h \ master.h masterdump.h message.h name.h ncache.h nsec.h \ -diff -up bind-9.9.2/lib/dns/include/dns/types.h.dyndb bind-9.9.2/lib/dns/include/dns/types.h ---- bind-9.9.2/lib/dns/include/dns/types.h.dyndb 2012-09-27 02:35:19.000000000 +0200 -+++ bind-9.9.2/lib/dns/include/dns/types.h 2012-10-11 13:13:10.632497587 +0200 +diff -up bind-9.9.5rc2/lib/dns/include/dns/types.h.dyndb bind-9.9.5rc2/lib/dns/include/dns/types.h +--- bind-9.9.5rc2/lib/dns/include/dns/types.h.dyndb 2014-01-17 04:27:12.000000000 +0100 ++++ bind-9.9.5rc2/lib/dns/include/dns/types.h 2014-01-24 10:45:59.050572062 +0100 @@ -60,6 +60,7 @@ typedef struct dns_dbtable dns_dbtable typedef void dns_dbversion_t; typedef struct dns_dlzimplementation dns_dlzimplementation_t; @@ -623,10 +623,10 @@ diff -up bind-9.9.2/lib/dns/include/dns/types.h.dyndb bind-9.9.2/lib/dns/include typedef struct dns_sdlzimplementation dns_sdlzimplementation_t; typedef struct dns_decompress dns_decompress_t; typedef struct dns_dispatch dns_dispatch_t; -diff -up bind-9.9.2/lib/dns/log.c.dyndb bind-9.9.2/lib/dns/log.c ---- bind-9.9.2/lib/dns/log.c.dyndb 2012-09-27 02:35:19.000000000 +0200 -+++ bind-9.9.2/lib/dns/log.c 2012-10-11 13:15:15.085414483 +0200 -@@ -82,6 +82,7 @@ LIBDNS_EXTERNAL_DATA isc_logmodule_t dns +diff -up bind-9.9.5rc2/lib/dns/log.c.dyndb bind-9.9.5rc2/lib/dns/log.c +--- bind-9.9.5rc2/lib/dns/log.c.dyndb 2014-01-17 04:27:12.000000000 +0100 ++++ bind-9.9.5rc2/lib/dns/log.c 2014-01-24 10:45:59.050572062 +0100 +@@ -83,6 +83,7 @@ LIBDNS_EXTERNAL_DATA isc_logmodule_t dns { "dns/dlz", 0 }, { "dns/dnssec", 0 }, { "dns/crypto", 0 }, @@ -634,10 +634,10 @@ diff -up bind-9.9.2/lib/dns/log.c.dyndb bind-9.9.2/lib/dns/log.c { NULL, 0 } }; -diff -up bind-9.9.2/lib/dns/Makefile.in.dyndb bind-9.9.2/lib/dns/Makefile.in ---- bind-9.9.2/lib/dns/Makefile.in.dyndb 2012-10-11 13:13:10.605497637 +0200 -+++ bind-9.9.2/lib/dns/Makefile.in 2012-10-11 13:13:10.633497585 +0200 -@@ -59,7 +59,7 @@ DNSOBJS = acache.@O@ acl.@O@ adb.@O@ bya +diff -up bind-9.9.5rc2/lib/dns/Makefile.in.dyndb bind-9.9.5rc2/lib/dns/Makefile.in +--- bind-9.9.5rc2/lib/dns/Makefile.in.dyndb 2014-01-24 10:45:59.001572079 +0100 ++++ bind-9.9.5rc2/lib/dns/Makefile.in 2014-01-24 10:45:59.050572062 +0100 +@@ -62,7 +62,7 @@ DNSOBJS = acache.@O@ acl.@O@ adb.@O@ bya cache.@O@ callbacks.@O@ clientinfo.@O@ compress.@O@ \ db.@O@ dbiterator.@O@ dbtable.@O@ diff.@O@ dispatch.@O@ \ dlz.@O@ dns64.@O@ dnssec.@O@ ds.@O@ forward.@O@ iptable.@O@ \ @@ -646,7 +646,7 @@ diff -up bind-9.9.2/lib/dns/Makefile.in.dyndb bind-9.9.2/lib/dns/Makefile.in lib.@O@ log.@O@ lookup.@O@ \ master.@O@ masterdump.@O@ message.@O@ \ name.@O@ ncache.@O@ nsec.@O@ nsec3.@O@ order.@O@ peer.@O@ \ -@@ -88,7 +88,7 @@ DNSSRCS = acache.c acl.c adb.c byaddr.c +@@ -92,7 +92,7 @@ DNSSRCS = acache.c acl.c adb.c byaddr.c cache.c callbacks.c clientinfo.c compress.c \ db.c dbiterator.c dbtable.c diff.c dispatch.c \ dlz.c dns64.c dnssec.c ds.c forward.c iptable.c journal.c \ @@ -655,7 +655,7 @@ diff -up bind-9.9.2/lib/dns/Makefile.in.dyndb bind-9.9.2/lib/dns/Makefile.in master.c masterdump.c message.c \ name.c ncache.c nsec.c nsec3.c order.c peer.c portlist.c \ rbt.c rbtdb.c rbtdb64.c rcode.c rdata.c rdatalist.c \ -@@ -119,6 +119,11 @@ version.@O@: version.c +@@ -125,6 +125,11 @@ version.@O@: version.c -DLIBAGE=${LIBAGE} \ -c ${srcdir}/version.c @@ -667,10 +667,10 @@ diff -up bind-9.9.2/lib/dns/Makefile.in.dyndb bind-9.9.2/lib/dns/Makefile.in libdns.@SA@: ${OBJS} ${AR} ${ARFLAGS} $@ ${OBJS} ${RANLIB} $@ -diff -up bind-9.9.2/lib/isccfg/namedconf.c.dyndb bind-9.9.2/lib/isccfg/namedconf.c ---- bind-9.9.2/lib/isccfg/namedconf.c.dyndb 2012-09-27 02:35:19.000000000 +0200 -+++ bind-9.9.2/lib/isccfg/namedconf.c 2012-10-11 13:13:10.634497583 +0200 -@@ -89,6 +89,7 @@ static cfg_type_t cfg_type_controls; +diff -up bind-9.9.5rc2/lib/isccfg/namedconf.c.dyndb bind-9.9.5rc2/lib/isccfg/namedconf.c +--- bind-9.9.5rc2/lib/isccfg/namedconf.c.dyndb 2014-01-17 04:27:12.000000000 +0100 ++++ bind-9.9.5rc2/lib/isccfg/namedconf.c 2014-01-24 10:45:59.051572062 +0100 +@@ -92,6 +92,7 @@ static cfg_type_t cfg_type_controls; static cfg_type_t cfg_type_controls_sockaddr; static cfg_type_t cfg_type_destinationlist; static cfg_type_t cfg_type_dialuptype; @@ -678,7 +678,7 @@ diff -up bind-9.9.2/lib/isccfg/namedconf.c.dyndb bind-9.9.2/lib/isccfg/namedconf static cfg_type_t cfg_type_ixfrdifftype; static cfg_type_t cfg_type_key; static cfg_type_t cfg_type_logfile; -@@ -871,6 +872,7 @@ namedconf_or_view_clauses[] = { +@@ -897,6 +898,7 @@ namedconf_or_view_clauses[] = { { "zone", &cfg_type_zone, CFG_CLAUSEFLAG_MULTI }, /* only 1 DLZ per view allowed */ { "dlz", &cfg_type_dynamically_loadable_zones, 0 }, @@ -686,7 +686,7 @@ diff -up bind-9.9.2/lib/isccfg/namedconf.c.dyndb bind-9.9.2/lib/isccfg/namedconf { "server", &cfg_type_server, CFG_CLAUSEFLAG_MULTI }, { "trusted-keys", &cfg_type_dnsseckeys, CFG_CLAUSEFLAG_MULTI }, { "managed-keys", &cfg_type_managedkeys, CFG_CLAUSEFLAG_MULTI }, -@@ -1983,6 +1985,40 @@ static cfg_type_t cfg_type_dialuptype = +@@ -2045,6 +2047,40 @@ static cfg_type_t cfg_type_dialuptype = &cfg_rep_string, dialup_enums }; diff --git a/bind.spec b/bind.spec index e53f06d..c227ffb 100644 --- a/bind.spec +++ b/bind.spec @@ -3,7 +3,7 @@ # #%%global PATCHVER P1 -%global PREVER b1 +%global PREVER rc2 %global VERSION %{version}%{PREVER} #%%global VERSION %{version} #%%global VERSION %{version}-%{PATCHVER} @@ -30,7 +30,7 @@ Summary: The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) serv Name: bind License: ISC Version: 9.9.5 -Release: 0.3.%{?PATCHVER}%{?PREVER}%{?dist} +Release: 0.4.%{?PATCHVER}%{?PREVER}%{?dist} Epoch: 32 Url: http://www.isc.org/products/BIND/ Buildroot:%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -89,9 +89,6 @@ Patch134:bind97-rh669163.patch Patch137:bind99-rrl.patch # Install dns/update.h header for bind-dyndb-ldap plugin Patch138:bind-9.9.3-include-update-h.patch -Patch142:bind99-ISC-Bugs-35080.patch -Patch143:bind-9.9.4-CVE-2014-0591.patch -Patch144:bind-9.9.5-nonexistence-of-resolv-conf.patch # SDB patches Patch11: bind-9.3.2b2-sdbsrc.patch @@ -100,7 +97,7 @@ Patch62: bind-9.5-sdb-sqlite-bld.patch # needs inpection Patch17: bind-9.3.2b1-fix_sdb_ldap.patch -Patch104: bind-96-dyndb.patch +Patch104: bind-99-dyndb.patch # IDN paches Patch73: bind-9.5-libidn.patch @@ -305,9 +302,6 @@ popd %patch131 -p1 -b .multlib-conflict %patch137 -p1 -b .rrl %patch138 -p1 -b .update -%patch142 -p1 -b .rbtdb_crash -%patch143 -p1 -b .CVE-2014-0591 -%patch144 -p1 -b .resolv-conf %if %{SDB} %patch101 -p1 -b .old-api @@ -922,6 +916,11 @@ rm -rf ${RPM_BUILD_ROOT} %endif %changelog +* Fri Jan 24 2014 Tomas Hozza 32:9.9.5-0.4.rc2 +- update to 9.9.5rc2 +- merged patches dropped +- some patches rebased to the new version + * Wed Jan 15 2014 Tomas Hozza 32:9.9.5-0.3.b1 - non-existance of resolv.conf should not be fatal (#1052343) diff --git a/bind99-ISC-Bugs-35080.patch b/bind99-ISC-Bugs-35080.patch deleted file mode 100644 index 14c383f..0000000 --- a/bind99-ISC-Bugs-35080.patch +++ /dev/null @@ -1,42 +0,0 @@ -commit 3a2ea636103eaf40404fb82f228605d384c36434 -Author: Mark Andrews -Date: Tue Dec 17 09:08:59 2013 +1100 - - 3692. [bug] Two calls to dns_db_getoriginnode were fatal if there - was no data at the node. [RT #35080] - - (cherry picked from commit 161e803a5608956271d8120be37a1b383d14b647) - -diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c -index 2dd4aa0..941b77e 100644 ---- a/lib/dns/rbtdb.c -+++ b/lib/dns/rbtdb.c -@@ -1638,8 +1638,11 @@ decrement_reference(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node, - - nodelock = &rbtdb->node_locks[bucket]; - -+#define KEEP_NODE(n, r) \ -+ ((n)->data != NULL || (n)->down != NULL || (n) == (r)->origin_node) -+ - /* Handle easy and typical case first. */ -- if (!node->dirty && (node->data != NULL || node->down != NULL)) { -+ if (!node->dirty && KEEP_NODE(node, rbtdb)) { - dns_rbtnode_refdecrement(node, &nrefs); - INSIST((int)nrefs >= 0); - if (nrefs == 0) { -@@ -1708,12 +1711,11 @@ decrement_reference(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node, - isc_refcount_decrement(&nodelock->references, &refs); - INSIST((int)refs >= 0); - -- /* -- * XXXDCL should this only be done for cache zones? -- */ -- if (node->data != NULL || node->down != NULL) -+ if (KEEP_NODE(node, rbtdb)) - goto restore_locks; - -+#undef KEEP_NODE -+ - if (write_locked) { - /* - * We can now delete the node. diff --git a/bind99-forward.patch b/bind99-forward.patch index 0392103..7c89b5f 100644 --- a/bind99-forward.patch +++ b/bind99-forward.patch @@ -1,13 +1,12 @@ -diff -up bind-9.9.0b2/lib/dns/include/dns/Makefile.in.forward bind-9.9.0b2/lib/dns/include/dns/Makefile.in ---- bind-9.9.0b2/lib/dns/include/dns/Makefile.in.forward 2011-12-07 16:17:50.822438237 +0100 -+++ bind-9.9.0b2/lib/dns/include/dns/Makefile.in 2011-12-07 16:18:00.374455261 +0100 -@@ -31,7 +31,8 @@ HEADERS = acl.h adb.h byaddr.h cache.h c - rdataslab.h rdatatype.h request.h resolver.h result.h \ - rootns.h rpz.h sdb.h sdlz.h secalg.h secproto.h soa.h ssu.h \ - tcpmsg.h time.h tkey.h tsig.h ttl.h types.h \ -- validator.h version.h view.h xfrin.h zone.h zonekey.h zt.h -+ validator.h version.h view.h xfrin.h zone.h zonekey.h zt.h \ -+ forward.h - - GENHEADERS = enumclass.h enumtype.h rdatastruct.h - +diff -up bind-9.9.5rc2/lib/dns/include/dns/Makefile.in.forward bind-9.9.5rc2/lib/dns/include/dns/Makefile.in +--- bind-9.9.5rc2/lib/dns/include/dns/Makefile.in.forward 2014-01-24 12:46:04.875847331 +0100 ++++ bind-9.9.5rc2/lib/dns/include/dns/Makefile.in 2014-01-24 12:47:51.707805950 +0100 +@@ -24,7 +24,7 @@ top_srcdir = @top_srcdir@ + HEADERS = acl.h adb.h byaddr.h cache.h callbacks.h cert.h compress.h \ + client.h clientinfo.h compress.h \ + db.h dbiterator.h dbtable.h diff.h dispatch.h dynamic_db.h \ +- dlz.h dnssec.h ds.h events.h fixedname.h iptable.h journal.h \ ++ dlz.h dnssec.h ds.h events.h fixedname.h forward.h iptable.h journal.h \ + keyflags.h keytable.h keyvalues.h lib.h log.h \ + master.h masterdump.h message.h name.h ncache.h nsec.h \ + peer.h portlist.h private.h rbt.h rcode.h \ diff --git a/bind99-rrl.patch b/bind99-rrl.patch index 3b04e1e..88a4659 100644 --- a/bind99-rrl.patch +++ b/bind99-rrl.patch @@ -1,12 +1,12 @@ -diff -up bind-9.9.3rc1/lib/dns/include/dns/Makefile.in.rrl bind-9.9.3rc1/lib/dns/include/dns/Makefile.in ---- bind-9.9.3rc1/lib/dns/include/dns/Makefile.in.rrl 2013-04-16 16:37:00.682186997 +0200 -+++ bind-9.9.3rc1/lib/dns/include/dns/Makefile.in 2013-04-16 16:37:08.387169682 +0200 -@@ -32,7 +32,7 @@ HEADERS = acl.h adb.h byaddr.h cache.h c - rootns.h rpz.h sdb.h sdlz.h secalg.h secproto.h soa.h ssu.h \ - tcpmsg.h time.h tkey.h tsig.h ttl.h types.h \ - validator.h version.h view.h xfrin.h zone.h zonekey.h zt.h \ -- forward.h -+ forward.h rrl.h - - GENHEADERS = enumclass.h enumtype.h rdatastruct.h +diff -up bind-9.9.5rc2/lib/dns/include/dns/Makefile.in.rrl bind-9.9.5rc2/lib/dns/include/dns/Makefile.in +--- bind-9.9.5rc2/lib/dns/include/dns/Makefile.in.rrl 2014-01-24 12:48:16.869796283 +0100 ++++ bind-9.9.5rc2/lib/dns/include/dns/Makefile.in 2014-01-24 12:49:15.704773787 +0100 +@@ -30,7 +30,7 @@ HEADERS = acl.h adb.h byaddr.h cache.h c + peer.h portlist.h private.h rbt.h rcode.h \ + rdata.h rdataclass.h rdatalist.h rdataset.h rdatasetiter.h \ + rdataslab.h rdatatype.h request.h resolver.h result.h \ +- rootns.h rpz.h sdb.h sdlz.h secalg.h secproto.h soa.h ssu.h \ ++ rootns.h rpz.h rrl.h sdb.h sdlz.h secalg.h secproto.h soa.h ssu.h \ + tcpmsg.h time.h tkey.h tsec.h tsig.h ttl.h types.h \ + validator.h version.h view.h xfrin.h zone.h zonekey.h zt.h diff --git a/sources b/sources index 310e200..f8712b3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -850e8f02cb5db1253114bca560bf3fe7 bind-9.9.5b1.tar.gz +eeb6f7afda9bb9c0f5dfbbae8fd03f30 bind-9.9.5rc2.tar.gz e4315fdea56983570d3a33702e925088 config-12.tar.bz2