Tue May 1 02:49:27 2012 UTC ()
Add fix to a race condition in the resolver code that can cause a recursive
nameserver: <https://kb.isc.org/article/AA-00664>.

Bump PKGREVISION.


(taca)
diff -r1.23 -r1.24 pkgsrc/net/bind96/Makefile
diff -r1.15 -r1.16 pkgsrc/net/bind96/distinfo
diff -r0 -r1.1 pkgsrc/net/bind96/patches/patch-lib_dns_resolver.c

cvs diff -r1.23 -r1.24 pkgsrc/net/bind96/Attic/Makefile (expand / switch to unified diff)

--- pkgsrc/net/bind96/Attic/Makefile 2012/04/05 00:41:10 1.23
+++ pkgsrc/net/bind96/Attic/Makefile 2012/05/01 02:49:26 1.24
@@ -1,17 +1,18 @@ @@ -1,17 +1,18 @@
1# $NetBSD: Makefile,v 1.23 2012/04/05 00:41:10 taca Exp $ 1# $NetBSD: Makefile,v 1.24 2012/05/01 02:49:26 taca Exp $
2 2
3DISTNAME= bind-${BIND_VERSION} 3DISTNAME= bind-${BIND_VERSION}
4PKGNAME= ${DISTNAME:S/-ESV/.3.1.ESV/:S/-R/./:S/-P/pl/} 4PKGNAME= ${DISTNAME:S/-ESV/.3.1.ESV/:S/-R/./:S/-P/pl/}
 5PKGREVISION= 1
5CATEGORIES= net 6CATEGORIES= net
6MASTER_SITES= ftp://ftp.isc.org/isc/bind9/${BIND_VERSION}/ \ 7MASTER_SITES= ftp://ftp.isc.org/isc/bind9/${BIND_VERSION}/ \
7 http://ftp.belnet.be/pub/mirror/ftp.isc.org/isc/bind9/${BIND_VERSION}/ 8 http://ftp.belnet.be/pub/mirror/ftp.isc.org/isc/bind9/${BIND_VERSION}/
8 9
9MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
10HOMEPAGE= http://www.isc.org/software/bind 11HOMEPAGE= http://www.isc.org/software/bind
11COMMENT= Version 9 of the Berkeley Internet Name Daemon, implementation of DNS 12COMMENT= Version 9 of the Berkeley Internet Name Daemon, implementation of DNS
12 13
13CONFLICTS+= bind<9.6.0 14CONFLICTS+= bind<9.6.0
14 15
15PKG_DESTDIR_SUPPORT= user-destdir 16PKG_DESTDIR_SUPPORT= user-destdir
16 17
17MAKE_JOBS_SAFE= no 18MAKE_JOBS_SAFE= no

cvs diff -r1.15 -r1.16 pkgsrc/net/bind96/Attic/distinfo (expand / switch to unified diff)

--- pkgsrc/net/bind96/Attic/distinfo 2012/04/05 00:41:10 1.15
+++ pkgsrc/net/bind96/Attic/distinfo 2012/05/01 02:49:26 1.16
@@ -1,10 +1,11 @@ @@ -1,10 +1,11 @@
1$NetBSD: distinfo,v 1.15 2012/04/05 00:41:10 taca Exp $ 1$NetBSD: distinfo,v 1.16 2012/05/01 02:49:26 taca Exp $
2 2
3SHA1 (bind-9.6-ESV-R6.tar.gz) = 8818ba00a7503e757d9d34053b2f16beac0d0f5e 3SHA1 (bind-9.6-ESV-R6.tar.gz) = 8818ba00a7503e757d9d34053b2f16beac0d0f5e
4RMD160 (bind-9.6-ESV-R6.tar.gz) = 239d70e1bc1d7e16a42d36938de8aa3ffbab0b64 4RMD160 (bind-9.6-ESV-R6.tar.gz) = 239d70e1bc1d7e16a42d36938de8aa3ffbab0b64
5Size (bind-9.6-ESV-R6.tar.gz) = 6288288 bytes 5Size (bind-9.6-ESV-R6.tar.gz) = 6288288 bytes
6SHA1 (patch-ab) = 6cec876c8caa7082f97365863f3f88c4f168da48 6SHA1 (patch-ab) = 6cec876c8caa7082f97365863f3f88c4f168da48
7SHA1 (patch-ac) = 074649e1514870a3154c623a5f6d1507b72b5b05 7SHA1 (patch-ac) = 074649e1514870a3154c623a5f6d1507b72b5b05
8SHA1 (patch-ad) = 3fcfac007f7823d48573459e57810f442c5b7d2f 8SHA1 (patch-ad) = 3fcfac007f7823d48573459e57810f442c5b7d2f
9SHA1 (patch-ag) = ffc547b444f01f51a12a01cfa884916a9a411a88 9SHA1 (patch-ag) = ffc547b444f01f51a12a01cfa884916a9a411a88
10SHA1 (patch-am) = a52d847354cd83b2474d5420925925e4614c966f 10SHA1 (patch-am) = a52d847354cd83b2474d5420925925e4614c966f
 11SHA1 (patch-lib_dns_resolver.c) = e9b7460c15df6b942b9987aeb4d223f48dec712d

File Added: pkgsrc/net/bind96/patches/Attic/patch-lib_dns_resolver.c
$NetBSD: patch-lib_dns_resolver.c,v 1.1 2012/05/01 02:49:27 taca Exp $

Prevent segmentation fault in resolver.c: https://kb.isc.org/article/AA-00664

--- lib/dns/resolver.c.orig	2012-03-26 16:14:28.000000000 +0000
+++ lib/dns/resolver.c
@@ -2156,7 +2156,6 @@ fctx_finddone(isc_task_t *task, isc_even
 	isc_boolean_t want_try = ISC_FALSE;
 	isc_boolean_t want_done = ISC_FALSE;
 	isc_boolean_t bucket_empty = ISC_FALSE;
-	isc_boolean_t destroy = ISC_FALSE;
 	unsigned int bucketnum;
 
 	find = event->ev_sender;
@@ -2195,17 +2194,12 @@ fctx_finddone(isc_task_t *task, isc_even
 		}
 	} else if (SHUTTINGDOWN(fctx) && fctx->pending == 0 &&
 		   fctx->nqueries == 0 && ISC_LIST_EMPTY(fctx->validators)) {
-		/*
-		 * Note that we had to wait until we had the lock before
-		 * looking at fctx->references.
-		 */
+
 		if (fctx->references == 0)
-			destroy = ISC_TRUE;
+			bucket_empty = fctx_destroy(fctx);
 	}
 	UNLOCK(&res->buckets[bucketnum].lock);
 
-	if (destroy)
-		bucket_empty = fctx_destroy(fctx);
 	isc_event_free(&event);
 	dns_adb_destroyfind(&find);