pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
bind920: update to version 9.20.3.
Module Name: pkgsrc-wip
Committed By: Havard Eidnes <he%NetBSD.org@localhost>
Pushed By: he
Date: Thu Oct 17 10:42:09 2024 +0200
Changeset: fcdc58d08c0129c902796eee31189f8f5b52771e
Modified Files:
bind920/Makefile
bind920/PLIST
bind920/distinfo
Removed Files:
bind920/patches/patch-lib_dns_acl.c
Log Message:
bind920: update to version 9.20.3.
Pkgsrc changes:
* Remove patch from upstream which is now integrated.
* Checksum & PLIST changes.
Upstream release note at
https://downloads.isc.org/isc/bind9/9.20.3/doc/arm/html/notes.html
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=fcdc58d08c0129c902796eee31189f8f5b52771e
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
bind920/Makefile | 2 +-
bind920/PLIST | 1 +
bind920/distinfo | 7 +-
bind920/patches/patch-lib_dns_acl.c | 151 ------------------------------------
4 files changed, 5 insertions(+), 156 deletions(-)
diffs:
diff --git a/bind920/Makefile b/bind920/Makefile
index 72f60de4f7..d270b440ea 100644
--- a/bind920/Makefile
+++ b/bind920/Makefile
@@ -15,7 +15,7 @@ CONFLICTS+= host-[0-9]*
MAKE_JOBS_SAFE= no
-BIND_VERSION= 9.20.2
+BIND_VERSION= 9.20.3
BUILD_DEFS+= BIND_DIR VARBASE
diff --git a/bind920/PLIST b/bind920/PLIST
index d0615f43d8..844b1856bd 100644
--- a/bind920/PLIST
+++ b/bind920/PLIST
@@ -153,6 +153,7 @@ include/isc/getaddresses.h
include/isc/hash.h
include/isc/hashmap.h
include/isc/heap.h
+include/isc/helper.h
include/isc/hex.h
include/isc/histo.h
include/isc/hmac.h
diff --git a/bind920/distinfo b/bind920/distinfo
index 20df4e108f..16b5a3bfde 100644
--- a/bind920/distinfo
+++ b/bind920/distinfo
@@ -1,7 +1,6 @@
$NetBSD: distinfo,v 1.20 2024/07/23 13:50:32 taca Exp $
-BLAKE2s (bind-9.20.2.tar.xz) = 7cee1649ea07555289430f3b8b7e0655f268ec66066689db0dabeaf7e3d3f956
-SHA512 (bind-9.20.2.tar.xz) = da5c9ca3cedf8e28ccf85f886772a306eccf95c10883eff42e6d34694d650cdbd00b3e5fe30cc9fb012029c1a5e8e829ebd6ce2ffefa323d7057e8915badf90c
-Size (bind-9.20.2.tar.xz) = 5865060 bytes
+BLAKE2s (bind-9.20.3.tar.xz) = 7138270b2903658107b0e1f85e321d32cf7d6608518f6f45d73852375c6fde4f
+SHA512 (bind-9.20.3.tar.xz) = 02321aa6d8260f410a319d78bcabec468b30a0ac3ebb66f54b998452bdb171626e12dd9362b1caaa55526d4788180b3177063fe2263cd168be8600a6e2592952
+Size (bind-9.20.3.tar.xz) = 5664328 bytes
SHA1 (patch-configure.ac) = f1f672271aa38c10b12d12d48455eb0af82d270c
-SHA1 (patch-lib_dns_acl.c) = 731f99ad448717aa642c6c1b2f4c0ef0b002cc07
diff --git a/bind920/patches/patch-lib_dns_acl.c b/bind920/patches/patch-lib_dns_acl.c
deleted file mode 100644
index 66602b24e8..0000000000
--- a/bind920/patches/patch-lib_dns_acl.c
+++ /dev/null
@@ -1,151 +0,0 @@
-$NetBSD$
-
-Apply the fix for
-https://gitlab.isc.org/isc-projects/bind9/-/issues/4908
-from
-https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/9458
-
---- lib/dns/acl.c.orig 2024-09-11 07:15:08.673927538 +0000
-+++ lib/dns/acl.c
-@@ -459,13 +459,25 @@ dns_aclelement_match(const isc_netaddr_t
- }
-
- static void
--dns__acl_destroy(dns_acl_t *dacl) {
-- unsigned int i;
-- dns_acl_port_transports_t *port_proto;
-+dns__acl_destroy_port_transports(dns_acl_t *acl) {
-+ dns_acl_port_transports_t *port_proto = NULL;
-+ dns_acl_port_transports_t *next = NULL;
-+ ISC_LIST_FOREACH_SAFE (acl->ports_and_transports, port_proto, link,
-+ next)
-+ {
-+ ISC_LIST_DEQUEUE(acl->ports_and_transports, port_proto, link);
-+ isc_mem_put(acl->mctx, port_proto, sizeof(*port_proto));
-+ }
-+}
-
-+static void
-+dns__acl_destroy(dns_acl_t *dacl) {
- INSIST(!ISC_LINK_LINKED(dacl, nextincache));
-
-- for (i = 0; i < dacl->length; i++) {
-+ isc_refcount_destroy(&dacl->references);
-+ dacl->magic = 0;
-+
-+ for (size_t i = 0; i < dacl->length; i++) {
- dns_aclelement_t *de = &dacl->elements[i];
- if (de->type == dns_aclelementtype_keyname) {
- dns_name_free(&de->keyname, dacl->mctx);
-@@ -484,18 +496,8 @@ dns__acl_destroy(dns_acl_t *dacl) {
- dns_iptable_detach(&dacl->iptable);
- }
-
-- port_proto = ISC_LIST_HEAD(dacl->ports_and_transports);
-- while (port_proto != NULL) {
-- dns_acl_port_transports_t *next = NULL;
--
-- next = ISC_LIST_NEXT(port_proto, link);
-- ISC_LIST_DEQUEUE(dacl->ports_and_transports, port_proto, link);
-- isc_mem_put(dacl->mctx, port_proto, sizeof(*port_proto));
-- port_proto = next;
-- }
-+ dns__acl_destroy_port_transports(dacl);
-
-- isc_refcount_destroy(&dacl->references);
-- dacl->magic = 0;
- isc_mem_putanddetach(&dacl->mctx, dacl, sizeof(*dacl));
- }
-
-@@ -659,10 +661,21 @@ dns_aclenv_set(dns_aclenv_t *env, dns_ac
- REQUIRE(DNS_ACL_VALID(localhost));
- REQUIRE(DNS_ACL_VALID(localnets));
-
-- rcu_read_lock();
- localhost = rcu_xchg_pointer(&env->localhost, dns_acl_ref(localhost));
- localnets = rcu_xchg_pointer(&env->localnets, dns_acl_ref(localnets));
-- rcu_read_unlock();
-+
-+ /*
-+ * This function is called only during interface scanning, so blocking
-+ * a bit is acceptable. Wait until all ongoing attachments to old
-+ * 'localhost' and 'localnets' are finished before we can detach and
-+ * possibly destroy them.
-+ *
-+ * The problem here isn't the memory reclamation per se, but
-+ * the reference counting race - we need to wait for the
-+ * critical section to end before we decrement the value and
-+ * possibly destroy the acl objects.
-+ */
-+ synchronize_rcu();
-
- dns_acl_detach(&localhost);
- dns_acl_detach(&localnets);
-@@ -675,24 +688,34 @@ dns_aclenv_copy(dns_aclenv_t *target, dn
-
- rcu_read_lock();
-
-- dns_acl_t *localhost = rcu_dereference(source->localhost);
-+ /*
-+ * We need to acquire the reference inside the critical section.
-+ */
-+
-+ dns_acl_t *localhost = dns_acl_ref(rcu_dereference(source->localhost));
- INSIST(DNS_ACL_VALID(localhost));
-
-- dns_acl_t *localnets = rcu_dereference(source->localnets);
-+ dns_acl_t *localnets = dns_acl_ref(rcu_dereference(source->localnets));
- INSIST(DNS_ACL_VALID(localnets));
-
-- localhost = rcu_xchg_pointer(&target->localhost,
-- dns_acl_ref(localhost));
-- localnets = rcu_xchg_pointer(&target->localnets,
-- dns_acl_ref(localnets));
-+ rcu_read_unlock();
-+
-+ localhost = rcu_xchg_pointer(&target->localhost, localhost);
-+ localnets = rcu_xchg_pointer(&target->localnets, localnets);
-+
-+ /*
-+ * This function is called only during (re)configuration, so blocking
-+ * a bit is acceptable.
-+ *
-+ * See the comment above in dns_aclenv_set() for more detail.
-+ */
-+ synchronize_rcu();
-
- target->match_mapped = source->match_mapped;
- #if defined(HAVE_GEOIP2)
- target->geoip = source->geoip;
- #endif /* if defined(HAVE_GEOIP2) */
-
-- rcu_read_unlock();
--
- dns_acl_detach(&localhost);
- dns_acl_detach(&localnets);
- }
-@@ -703,17 +726,14 @@ dns__aclenv_destroy(dns_aclenv_t *aclenv
-
- aclenv->magic = 0;
-
-- rcu_read_lock();
-- dns_acl_t *localhost = rcu_xchg_pointer(&aclenv->localhost, NULL);
-- INSIST(DNS_ACL_VALID(localhost));
--
-- dns_acl_t *localnets = rcu_xchg_pointer(&aclenv->localnets, NULL);
-- INSIST(DNS_ACL_VALID(localnets));
--
-- rcu_read_unlock();
-+ /*
-+ * The last reference to the aclenv has been detached, so nobody should
-+ * be reading from this aclenv. We can destroy the localhost and
-+ * localnet directly without swapping the pointers.
-+ */
-
-- dns_acl_detach(&localhost);
-- dns_acl_detach(&localnets);
-+ dns_acl_detach(&aclenv->localhost);
-+ dns_acl_detach(&aclenv->localnets);
-
- isc_mem_putanddetach(&aclenv->mctx, aclenv, sizeof(*aclenv));
- }
Home |
Main Index |
Thread Index |
Old Index