Module Name: src Committed By: spz Date: Tue Jul 24 20:00:45 UTC 2012
Modified Files: src/external/bsd/bind/dist: CHANGES src/external/bsd/bind/dist/lib/dns: resolver.c src/external/bsd/bind/dist/lib/isc/include/isc: queue.h Log Message: the patch for CVE-2012-3868 was incomplete To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/bsd/bind/dist/CHANGES cvs rdiff -u -r1.13 -r1.14 src/external/bsd/bind/dist/lib/dns/resolver.c cvs rdiff -u -r1.2 -r1.3 \ src/external/bsd/bind/dist/lib/isc/include/isc/queue.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/bsd/bind/dist/CHANGES diff -u src/external/bsd/bind/dist/CHANGES:1.4 src/external/bsd/bind/dist/CHANGES:1.5 --- src/external/bsd/bind/dist/CHANGES:1.4 Tue Jul 24 18:06:28 2012 +++ src/external/bsd/bind/dist/CHANGES Tue Jul 24 20:00:44 2012 @@ -1,5 +1,7 @@ --- 9.9.1-P2 released --- +3349. [bug] Change #3345 was incomplete. [RT #30233] + 3346. [security] Bad-cache data could be used before it was initialized, causing an assert. [RT #30025] Index: src/external/bsd/bind/dist/lib/dns/resolver.c diff -u src/external/bsd/bind/dist/lib/dns/resolver.c:1.13 src/external/bsd/bind/dist/lib/dns/resolver.c:1.14 --- src/external/bsd/bind/dist/lib/dns/resolver.c:1.13 Tue Jul 24 18:06:28 2012 +++ src/external/bsd/bind/dist/lib/dns/resolver.c Tue Jul 24 20:00:45 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: resolver.c,v 1.13 2012/07/24 18:06:28 spz Exp $ */ +/* $NetBSD: resolver.c,v 1.14 2012/07/24 20:00:45 spz Exp $ */ /* * Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC") @@ -8465,7 +8465,7 @@ dns_resolver_addbadcache(dns_resolver_t resolver->badhash > DNS_BADCACHE_SIZE) resizehash(resolver, &now, ISC_FALSE); } else - bad->expire = *expire; + bad->expire = *expire; cleanup: UNLOCK(&resolver->lock); } Index: src/external/bsd/bind/dist/lib/isc/include/isc/queue.h diff -u src/external/bsd/bind/dist/lib/isc/include/isc/queue.h:1.2 src/external/bsd/bind/dist/lib/isc/include/isc/queue.h:1.3 --- src/external/bsd/bind/dist/lib/isc/include/isc/queue.h:1.2 Tue Jul 24 18:06:29 2012 +++ src/external/bsd/bind/dist/lib/isc/include/isc/queue.h Tue Jul 24 20:00:45 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: queue.h,v 1.2 2012/07/24 18:06:29 spz Exp $ */ +/* $NetBSD: queue.h,v 1.3 2012/07/24 20:00:45 spz Exp $ */ /* * Copyright (C) 2011, 2012 Internet Systems Consortium, Inc. ("ISC") @@ -103,15 +103,15 @@ } \ LOCK(&(queue).taillock); \ if ((queue).tail == NULL && !headlocked) { \ - UNLOCK(&(queue).taillock); \ + UNLOCK(&(queue).taillock); \ LOCK(&(queue).headlock); \ LOCK(&(queue).taillock); \ headlocked = ISC_TRUE; \ } \ - if ((queue).tail != NULL) \ - (queue).tail->link.next = (elt); \ (elt)->link.prev = (queue).tail; \ (elt)->link.next = NULL; \ + if ((queue).tail != NULL) \ + (queue).tail->link.next = (elt); \ (queue).tail = (elt); \ UNLOCK(&(queue).taillock); \ if (headlocked) { \ @@ -130,10 +130,10 @@ LOCK(&(queue).taillock); \ if (ret->link.next == NULL) { \ (queue).head = (queue).tail = NULL; \ - UNLOCK(&(queue).taillock); \ + UNLOCK(&(queue).taillock); \ break; \ } \ - UNLOCK(&(queue).taillock); \ + UNLOCK(&(queue).taillock); \ } \ (queue).head = ret->link.next; \ (queue).head->link.prev = NULL; \