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; \