Merge branch 'v9_9' of ssh://repo.isc.org/proj/git/prod/bind9 into v9_9

This commit is contained in:
Tinderbox User 2015-05-29 01:08:49 +00:00
commit 11884ddefe
31 changed files with 353 additions and 191 deletions

View file

@ -1,3 +1,10 @@
4130. [bug] The compatability shim for *printf() misprinted some
large numbers. [RT #39586]
4129. [port] Address API changes in OpenSSL 1.1.0. [RT #39532]
4128. [bug] Address issues raised by Coverity 7.6. [RT #39537]
4127. [protocol] CDS and CDNSKEY need to be signed by the key signing
key as per RFC 7344, Section 4.1. [RT #37215]

View file

@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- Copyright (C) 2008-2012, 2014 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2008-2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC")
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
@ -41,6 +41,7 @@
<year>2011</year>
<year>2012</year>
<year>2014</year>
<year>2015</year>
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
</copyright>
</docinfo>

View file

@ -3513,7 +3513,10 @@ main(int argc, char *argv[]) {
* of keys rather early.
*/
ISC_LIST_INIT(keylist);
isc_rwlock_init(&keylist_lock, 0, 0);
result = isc_rwlock_init(&keylist_lock, 0, 0);
if (result != ISC_R_SUCCESS)
fatal("could not initialize keylist_lock: %s",
isc_result_totext(result));
/*
* Fill keylist with:

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@ -302,7 +302,7 @@ ns_interface_listenudp(ns_interface_t *ifp) {
return (ISC_R_SUCCESS);
addtodispatch_failure:
for (i = disp - 1; i <= 0; i--) {
for (i = disp - 1; i >= 0; i--) {
dns_dispatch_changeattributes(ifp->udpdispatch[i], 0,
DNS_DISPATCHATTR_NOLISTEN);
dns_dispatch_detach(&(ifp->udpdispatch[i]));

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@ -3028,7 +3028,7 @@ update_action(isc_task_t *task, isc_event_t *event) {
}
if (result != ISC_R_SUCCESS)
goto failure;
}
/*

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2004, 2005, 2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004, 2005, 2007, 2009, 2011-2013, 2015 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@ -297,6 +297,7 @@ rbt_init(char *filename, dns_rbt_t **rbt, isc_mem_t *mctx) {
if ((rval != 0) || (dns_result != ISC_R_SUCCESS)) {
t_info("add of %s failed\n", p);
dns_rbt_destroy(rbt);
(void) free(p);
fclose(fp);
return(1);
}
@ -704,7 +705,7 @@ t9_walkchain(dns_rbtnodechain_t *chain, dns_rbt_t *rbt) {
if (order >= 0) {
t_info("unexpected order %s %s %s\n",
dnsname_totext(dns_fixedname_name(&fullname1)),
order == -1 ? "<" : (order == 0 ? "==" : ">"),
order == 0 ? "==" : ">",
dnsname_totext(dns_fixedname_name(&fullname2)));
++nprobs;
}

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2004, 2006-2008, 2010, 2011, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004, 2006-2008, 2010, 2011, 2014, 2015 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any

View file

@ -1,6 +1,6 @@
#!/bin/sh -e
#
# Copyright (C) 2004, 2006-2012, 2014 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2004, 2006-2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000-2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any

View file

@ -1,4 +1,4 @@
# Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2012, 2015 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above

View file

@ -1,4 +1,4 @@
# Copyright (C) 2004, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2004, 2007, 2009, 2012, 2015 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001, 2002 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2004, 2005, 2007, 2009, 2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004, 2005, 2007, 2009, 2011, 2013-2015 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@ -999,6 +999,12 @@ t_tasks4(void) {
NULL, sizeof(*event));
if (event == NULL) {
t_info("isc_event_allocate failed\n");
isc_result = isc_mutex_unlock(&T4_mx);
if (isc_result != ISC_R_SUCCESS) {
t_info("isc_mutex_unlock failed %s\n",
isc_result_totext(isc_result));
++T4_nprobs;
}
DESTROYLOCK(&T4_mx);
isc_task_destroy(&task);
(void) isc_condition_destroy(&T4_cv);

View file

@ -1,3 +1,5 @@
Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC")
See COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
CDS / CDNSKEY Child side processing.

View file

@ -1,5 +1,5 @@
/*
* Portions Copyright (C) 2005, 2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 2005, 2007, 2009-2013, 2015 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@ -221,8 +221,8 @@ dns_dlzcreate(isc_mem_t *mctx, const char *dlzname, const char *drivername,
void
dns_dlzdestroy(dns_dlzdb_t **dbp) {
isc_mem_t *mctx;
dns_dlzdestroy_t destroy;
dns_dlzdb_t *db;
/* Write debugging message to log */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
@ -234,23 +234,19 @@ dns_dlzdestroy(dns_dlzdb_t **dbp) {
*/
REQUIRE(dbp != NULL && DNS_DLZ_VALID(*dbp));
db = *dbp;
*dbp = NULL;
#ifdef BIND9
if ((*dbp)->ssutable != NULL) {
dns_ssutable_detach(&(*dbp)->ssutable);
}
if (db->ssutable != NULL)
dns_ssutable_detach(&db->ssutable);
#endif
/* call the drivers destroy method */
if ((*dbp) != NULL) {
mctx = (*dbp)->mctx;
destroy = (*dbp)->implementation->methods->destroy;
(*destroy)((*dbp)->implementation->driverarg,(*dbp)->dbdata);
/* return memory */
isc_mem_put(mctx, (*dbp), sizeof(dns_dlzdb_t));
isc_mem_detach(&mctx);
}
*dbp = NULL;
destroy = db->implementation->methods->destroy;
(*destroy)(db->implementation->driverarg, db->dbdata);
/* return memory and detach */
isc_mem_putanddetach(&db->mctx, db, sizeof(dns_dlzdb_t));
}

View file

@ -1,5 +1,5 @@
/*
* Portions Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 2004-2013, 2015 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@ -1001,9 +1001,6 @@ comparekeys(const dst_key_t *key1, const dst_key_t *key2,
if (key1 == key2)
return (ISC_TRUE);
if (key1 == NULL || key2 == NULL)
return (ISC_FALSE);
if (key1->key_alg != key2->key_alg)
return (ISC_FALSE);
@ -1093,8 +1090,6 @@ dst_key_paramcompare(const dst_key_t *key1, const dst_key_t *key2) {
if (key1 == key2)
return (ISC_TRUE);
if (key1 == NULL || key2 == NULL)
return (ISC_FALSE);
if (key1->key_alg == key2->key_alg &&
key1->func->paramcompare != NULL &&
key1->func->paramcompare(key1, key2) == ISC_TRUE)

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2004, 2005, 2007-2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004, 2005, 2007-2009, 2011, 2012, 2015 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@ -29,12 +29,27 @@
#include <openssl/evp.h>
#include <openssl/conf.h>
#include <openssl/crypto.h>
#include <openssl/bn.h>
#if !defined(OPENSSL_NO_ENGINE) && defined(CRYPTO_LOCK_ENGINE) && \
(OPENSSL_VERSION_NUMBER >= 0x0090707f)
#define USE_ENGINE 1
#endif
#if OPENSSL_VERSION_NUMBER < 0x10100000L
/*
* These are new in OpenSSL 1.1.0. BN_GENCB _cb needs to be declared in
* the function like this before the BN_GENCB_new call:
*
* #if OPENSSL_VERSION_NUMBER < 0x10100000L
* _cb;
* #endif
*/
#define BN_GENCB_free(x) (x = NULL);
#define BN_GENCB_new() (&_cb)
#define BN_GENCB_get_arg(x) ((x)->arg)
#endif
ISC_LANG_BEGINDECLS
isc_result_t

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2013, 2015 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any

View file

@ -2112,6 +2112,8 @@ dns_journal_compact(isc_mem_t *mctx, char *filename, isc_uint32_t serial,
char backup[1024];
isc_boolean_t is_backup = ISC_FALSE;
REQUIRE(filename != NULL);
namelen = strlen(filename);
if (namelen > 4U && strcmp(filename + namelen - 4, ".jnl") == 0)
namelen -= 4;

View file

@ -280,7 +280,7 @@ loadctx_destroy(dns_loadctx_t *lctx);
SETRESULT(lctx, result); \
LOGIT(result); \
read_till_eol = ISC_TRUE; \
continue; \
break; \
} else if (result != ISC_R_SUCCESS) \
goto log_and_cleanup; \
} \

View file

@ -1,5 +1,5 @@
/*
* Portions Copyright (C) 2004-2012, 2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 2004-2012, 2014, 2015 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@ -88,6 +88,7 @@ entropy_getpseudo(unsigned char *buf, int num) {
return (result == ISC_R_SUCCESS ? 1 : -1);
}
#if OPENSSL_VERSION_NUMBER < 0x10100000L
static void
entropy_add(const void *buf, int num, double entropy) {
/*
@ -97,6 +98,18 @@ entropy_add(const void *buf, int num, double entropy) {
UNUSED(num);
UNUSED(entropy);
}
#else
static int
entropy_add(const void *buf, int num, double entropy) {
/*
* Do nothing. The only call to this provides no useful data anyway.
*/
UNUSED(buf);
UNUSED(num);
UNUSED(entropy);
return (1);
}
#endif
static void
lock_callback(int mode, int type, const char *file, int line) {
@ -108,10 +121,12 @@ lock_callback(int mode, int type, const char *file, int line) {
UNLOCK(&locks[type]);
}
#if OPENSSL_VERSION_NUMBER < 0x10100000L
static unsigned long
id_callback(void) {
return ((unsigned long)isc_thread_self());
}
#endif
static void *
mem_alloc(size_t size) {
@ -172,7 +187,9 @@ dst__openssl_init(const char *engine) {
if (result != ISC_R_SUCCESS)
goto cleanup_mutexalloc;
CRYPTO_set_locking_callback(lock_callback);
#if OPENSSL_VERSION_NUMBER < 0x10100000L
CRYPTO_set_id_callback(id_callback);
#endif
ERR_load_crypto_strings();
@ -270,7 +287,9 @@ dst__openssl_destroy(void) {
CRYPTO_cleanup_all_ex_data();
#endif
ERR_clear_error();
#if OPENSSL_VERSION_NUMBER < 0x10100000L
ERR_remove_state(0);
#endif
ERR_free_strings();
#ifdef DNS_CRYPTO_LEAKS

View file

@ -1,5 +1,5 @@
/*
* Portions Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 2004-2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@ -71,7 +71,7 @@
static isc_result_t openssldh_todns(const dst_key_t *key, isc_buffer_t *data);
static BIGNUM bn2, bn768, bn1024, bn1536;
static BIGNUM *bn2, *bn768, *bn1024, *bn1536;
static isc_result_t
openssldh_computesecret(const dst_key_t *pub, const dst_key_t *priv,
@ -161,7 +161,7 @@ progress_cb(int p, int n, BN_GENCB *cb)
UNUSED(n);
u.dptr = cb->arg;
u.dptr = BN_GENCB_get_arg(cb);
if (u.fptr != NULL)
u.fptr(p);
return (1);
@ -172,7 +172,10 @@ static isc_result_t
openssldh_generate(dst_key_t *key, int generator, void (*callback)(int)) {
DH *dh = NULL;
#if OPENSSL_VERSION_NUMBER > 0x00908000L
BN_GENCB cb;
BN_GENCB *cb;
#if OPENSSL_VERSION_NUMBER < 0x10100000L
BN_GENCB _cb;
#endif
union {
void *dptr;
void (*fptr)(int);
@ -191,12 +194,12 @@ openssldh_generate(dst_key_t *key, int generator, void (*callback)(int)) {
if (dh == NULL)
return (dst__openssl_toresult(ISC_R_NOMEMORY));
if (key->key_size == 768)
dh->p = &bn768;
dh->p = bn768;
else if (key->key_size == 1024)
dh->p = &bn1024;
dh->p = bn1024;
else
dh->p = &bn1536;
dh->g = &bn2;
dh->p = bn1536;
dh->g = bn2;
} else
generator = 2;
}
@ -206,31 +209,38 @@ openssldh_generate(dst_key_t *key, int generator, void (*callback)(int)) {
dh = DH_new();
if (dh == NULL)
return (dst__openssl_toresult(ISC_R_NOMEMORY));
cb = BN_GENCB_new();
if (cb == NULL) {
DH_free(dh);
return (dst__openssl_toresult(ISC_R_NOMEMORY));
}
if (callback == NULL) {
BN_GENCB_set_old(&cb, NULL, NULL);
BN_GENCB_set_old(cb, NULL, NULL);
} else {
u.fptr = callback;
BN_GENCB_set(&cb, &progress_cb, u.dptr);
BN_GENCB_set(cb, &progress_cb, u.dptr);
}
if (!DH_generate_parameters_ex(dh, key->key_size, generator,
&cb)) {
cb)) {
DH_free(dh);
BN_GENCB_free(cb);
return (dst__openssl_toresult2(
"DH_generate_parameters_ex",
DST_R_OPENSSLFAILURE));
}
BN_GENCB_free(cb);
#else
dh = DH_generate_parameters(key->key_size, generator,
NULL, NULL);
if (dh == NULL)
return (dst__openssl_toresult2(
"DH_generate_parameters",
DST_R_OPENSSLFAILURE));
#endif
}
if (dh == NULL)
return (dst__openssl_toresult2("DH_generate_parameters",
DST_R_OPENSSLFAILURE));
if (DH_generate_key(dh) == 0) {
DH_free(dh);
return (dst__openssl_toresult2("DH_generate_key",
@ -256,9 +266,9 @@ openssldh_destroy(dst_key_t *key) {
if (dh == NULL)
return;
if (dh->p == &bn768 || dh->p == &bn1024 || dh->p == &bn1536)
if (dh->p == bn768 || dh->p == bn1024 || dh->p == bn1536)
dh->p = NULL;
if (dh->g == &bn2)
if (dh->g == bn2)
dh->g = NULL;
DH_free(dh);
key->keydata.dh = NULL;
@ -294,8 +304,8 @@ openssldh_todns(const dst_key_t *key, isc_buffer_t *data) {
isc_buffer_availableregion(data, &r);
if (dh->g == &bn2 &&
(dh->p == &bn768 || dh->p == &bn1024 || dh->p == &bn1536)) {
if (dh->g == bn2 &&
(dh->p == bn768 || dh->p == bn1024 || dh->p == bn1536)) {
plen = 1;
glen = 0;
}
@ -310,9 +320,9 @@ openssldh_todns(const dst_key_t *key, isc_buffer_t *data) {
uint16_toregion(plen, &r);
if (plen == 1) {
if (dh->p == &bn768)
if (dh->p == bn768)
*r.base = 1;
else if (dh->p == &bn1024)
else if (dh->p == bn1024)
*r.base = 2;
else
*r.base = 3;
@ -375,13 +385,13 @@ openssldh_fromdns(dst_key_t *key, isc_buffer_t *data) {
special = uint16_fromregion(&r);
switch (special) {
case 1:
dh->p = &bn768;
dh->p = bn768;
break;
case 2:
dh->p = &bn1024;
dh->p = bn1024;
break;
case 3:
dh->p = &bn1536;
dh->p = bn1536;
break;
default:
DH_free(dh);
@ -409,12 +419,12 @@ openssldh_fromdns(dst_key_t *key, isc_buffer_t *data) {
}
if (special != 0) {
if (glen == 0)
dh->g = &bn2;
dh->g = bn2;
else {
dh->g = BN_bin2bn(r.base, glen, NULL);
if (BN_cmp(dh->g, &bn2) == 0) {
if (BN_cmp(dh->g, bn2) == 0) {
BN_free(dh->g);
dh->g = &bn2;
dh->g = bn2;
}
else {
DH_free(dh);
@ -563,25 +573,25 @@ openssldh_parse(dst_key_t *key, isc_lex_t *lexer, dst_key_t *pub) {
if ((key->key_size == 768 ||
key->key_size == 1024 ||
key->key_size == 1536) &&
BN_cmp(dh->g, &bn2) == 0)
BN_cmp(dh->g, bn2) == 0)
{
if (key->key_size == 768 && BN_cmp(dh->p, &bn768) == 0) {
if (key->key_size == 768 && BN_cmp(dh->p, bn768) == 0) {
BN_free(dh->p);
BN_free(dh->g);
dh->p = &bn768;
dh->g = &bn2;
dh->p = bn768;
dh->g = bn2;
} else if (key->key_size == 1024 &&
BN_cmp(dh->p, &bn1024) == 0) {
BN_cmp(dh->p, bn1024) == 0) {
BN_free(dh->p);
BN_free(dh->g);
dh->p = &bn1024;
dh->g = &bn2;
dh->p = bn1024;
dh->g = bn2;
} else if (key->key_size == 1536 &&
BN_cmp(dh->p, &bn1536) == 0) {
BN_cmp(dh->p, bn1536) == 0) {
BN_free(dh->p);
BN_free(dh->g);
dh->p = &bn1536;
dh->g = &bn2;
dh->p = bn1536;
dh->g = bn2;
}
}
@ -622,10 +632,10 @@ BN_fromhex(BIGNUM *b, const char *str) {
static void
openssldh_cleanup(void) {
BN_free(&bn2);
BN_free(&bn768);
BN_free(&bn1024);
BN_free(&bn1536);
BN_free(bn2);
BN_free(bn768);
BN_free(bn1024);
BN_free(bn1536);
}
static dst_func_t openssldh_functions = {
@ -655,17 +665,27 @@ isc_result_t
dst__openssldh_init(dst_func_t **funcp) {
REQUIRE(funcp != NULL);
if (*funcp == NULL) {
BN_init(&bn2);
BN_init(&bn768);
BN_init(&bn1024);
BN_init(&bn1536);
BN_set_word(&bn2, 2);
BN_fromhex(&bn768, PRIME768);
BN_fromhex(&bn1024, PRIME1024);
BN_fromhex(&bn1536, PRIME1536);
bn2 = BN_new();
bn768 = BN_new();
bn1024 = BN_new();
bn1536 = BN_new();
if (bn2 == NULL || bn768 == NULL ||
bn1024 == NULL || bn1536 == NULL)
goto cleanup;
BN_set_word(bn2, 2);
BN_fromhex(bn768, PRIME768);
BN_fromhex(bn1024, PRIME1024);
BN_fromhex(bn1536, PRIME1536);
*funcp = &openssldh_functions;
}
return (ISC_R_SUCCESS);
cleanup:
if (bn2 != NULL) BN_free(bn2);
if (bn768 != NULL) BN_free(bn768);
if (bn1024 != NULL) BN_free(bn1024);
if (bn1536 != NULL) BN_free(bn1536);
return (ISC_R_NOMEMORY);
}
#else /* OPENSSL */

View file

@ -1,5 +1,5 @@
/*
* Portions Copyright (C) 2004-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 2004-2009, 2011-2013, 2015 Internet Systems Consortium, Inc. ("ISC")
* Portions Copyright (C) 1999-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@ -339,7 +339,7 @@ progress_cb(int p, int n, BN_GENCB *cb)
UNUSED(n);
u.dptr = cb->arg;
u.dptr = BN_GENCB_get_arg(cb);
if (u.fptr != NULL)
u.fptr(p);
return (1);
@ -352,7 +352,10 @@ openssldsa_generate(dst_key_t *key, int unused, void (*callback)(int)) {
unsigned char rand_array[ISC_SHA1_DIGESTLENGTH];
isc_result_t result;
#if OPENSSL_VERSION_NUMBER > 0x00908000L
BN_GENCB cb;
BN_GENCB *cb;
#if OPENSSL_VERSION_NUMBER < 0x10100000L
BN_GENCB _cb;
#endif
union {
void *dptr;
void (*fptr)(int);
@ -373,22 +376,30 @@ openssldsa_generate(dst_key_t *key, int unused, void (*callback)(int)) {
dsa = DSA_new();
if (dsa == NULL)
return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
cb = BN_GENCB_new();
if (cb == NULL) {
DSA_free(dsa);
return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
}
if (callback == NULL) {
BN_GENCB_set_old(&cb, NULL, NULL);
BN_GENCB_set_old(cb, NULL, NULL);
} else {
u.fptr = callback;
BN_GENCB_set(&cb, &progress_cb, u.dptr);
BN_GENCB_set(cb, &progress_cb, u.dptr);
}
if (!DSA_generate_parameters_ex(dsa, key->key_size, rand_array,
ISC_SHA1_DIGESTLENGTH, NULL, NULL,
&cb))
cb))
{
DSA_free(dsa);
BN_GENCB_free(cb);
return (dst__openssl_toresult2("DSA_generate_parameters_ex",
DST_R_OPENSSLFAILURE));
}
BN_GENCB_free(cb);
#else
dsa = DSA_generate_parameters(key->key_size, rand_array,
ISC_SHA1_DIGESTLENGTH, NULL, NULL,

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2004-2009, 2011-2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004-2009, 2011-2015 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@ -753,7 +753,7 @@ progress_cb(int p, int n, BN_GENCB *cb)
UNUSED(n);
u.dptr = cb->arg;
u.dptr = BN_GENCB_get_arg(cb);
if (u.fptr != NULL)
u.fptr(p);
return (1);
@ -764,18 +764,21 @@ static isc_result_t
opensslrsa_generate(dst_key_t *key, int exp, void (*callback)(int)) {
#if OPENSSL_VERSION_NUMBER > 0x00908000L
isc_result_t ret = DST_R_OPENSSLFAILURE;
BN_GENCB cb;
union {
void *dptr;
void (*fptr)(int);
} u;
RSA *rsa = RSA_new();
BIGNUM *e = BN_new();
#if OPENSSL_VERSION_NUMBER < 0x10100000L
BN_GENCB _cb;
#endif
BN_GENCB *cb = BN_GENCB_new();
#if USE_EVP
EVP_PKEY *pkey = EVP_PKEY_new();
#endif
if (rsa == NULL || e == NULL)
if (rsa == NULL || e == NULL || cb == NULL)
goto err;
#if USE_EVP
if (pkey == NULL)
@ -795,14 +798,15 @@ opensslrsa_generate(dst_key_t *key, int exp, void (*callback)(int)) {
}
if (callback == NULL) {
BN_GENCB_set_old(&cb, NULL, NULL);
BN_GENCB_set_old(cb, NULL, NULL);
} else {
u.fptr = callback;
BN_GENCB_set(&cb, &progress_cb, u.dptr);
BN_GENCB_set(cb, &progress_cb, u.dptr);
}
if (RSA_generate_key_ex(rsa, key->key_size, e, &cb)) {
if (RSA_generate_key_ex(rsa, key->key_size, e, cb)) {
BN_free(e);
BN_GENCB_free(cb);
SET_FLAGS(rsa);
#if USE_EVP
key->keydata.pkey = pkey;
@ -813,6 +817,7 @@ opensslrsa_generate(dst_key_t *key, int exp, void (*callback)(int)) {
#endif
return (ISC_R_SUCCESS);
}
BN_GENCB_free(cb);
ret = dst__openssl_toresult2("RSA_generate_key_ex",
DST_R_OPENSSLFAILURE);
@ -825,6 +830,8 @@ err:
BN_free(e);
if (rsa != NULL)
RSA_free(rsa);
if (cb != NULL)
BN_GENCB_free(cb);
return (dst__openssl_toresult(ret));
#else
RSA *rsa;
@ -1375,12 +1382,20 @@ opensslrsa_fromlabel(dst_key_t *key, const char *engine, const char *label,
isc_result_t ret;
EVP_PKEY *pkey = NULL;
RSA *rsa = NULL, *pubrsa = NULL;
char *colon;
char *colon, *tmpengine = NULL;
UNUSED(pin);
if (engine == NULL)
DST_RET(DST_R_NOENGINE);
if (engine == NULL) {
colon = strchr(label, ':');
if (colon == NULL)
DST_RET(DST_R_NOENGINE);
tmpengine = isc_mem_strdup(key->mctx, label);
if (tmpengine == NULL)
DST_RET(ISC_R_NOMEMORY);
colon = strchr(tmpengine, ':');
*colon = '\0';
}
e = dst__openssl_getengine(engine);
if (e == NULL)
DST_RET(DST_R_NOENGINE);
@ -1395,17 +1410,13 @@ opensslrsa_fromlabel(dst_key_t *key, const char *engine, const char *label,
if (pkey == NULL)
DST_RET(dst__openssl_toresult2("ENGINE_load_private_key",
ISC_R_NOTFOUND));
if (engine != NULL) {
if (tmpengine != NULL) {
key->engine = tmpengine;
tmpengine = NULL;
} else {
key->engine = isc_mem_strdup(key->mctx, engine);
if (key->engine == NULL)
DST_RET(ISC_R_NOMEMORY);
} else {
key->engine = isc_mem_strdup(key->mctx, label);
if (key->engine == NULL)
DST_RET(ISC_R_NOMEMORY);
colon = strchr(key->engine, ':');
if (colon != NULL)
*colon = '\0';
}
key->label = isc_mem_strdup(key->mctx, label);
if (key->label == NULL)
@ -1430,6 +1441,8 @@ opensslrsa_fromlabel(dst_key_t *key, const char *engine, const char *label,
return (ISC_R_SUCCESS);
err:
if (tmpengine != NULL)
isc_mem_free(key->mctx, tmpengine);
if (rsa != NULL)
RSA_free(rsa);
if (pubrsa != NULL)

View file

@ -1610,8 +1610,7 @@ rotate_left(dns_rbtnode_t *node, dns_rbtnode_t **rootp) {
PARENT(LEFT(child)) = node;
LEFT(child) = node;
if (child != NULL)
PARENT(child) = PARENT(node);
PARENT(child) = PARENT(node);
if (IS_ROOT(node)) {
*rootp = child;
@ -1643,8 +1642,7 @@ rotate_right(dns_rbtnode_t *node, dns_rbtnode_t **rootp) {
PARENT(RIGHT(child)) = node;
RIGHT(child) = node;
if (child != NULL)
PARENT(child) = PARENT(node);
PARENT(child) = PARENT(node);
if (IS_ROOT(node)) {
*rootp = child;

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2004, 2005, 2007-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2004, 2005, 2007-2013, 2015 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any

View file

@ -1,5 +1,5 @@
/*
* Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2013-2015 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@ -1161,22 +1161,17 @@ dns_rrl(dns_view_t *view,
client_addr, now,
log_buf, log_buf_len);
if (rrl_all_result != DNS_RRL_RESULT_OK) {
int level;
e = e_all;
rrl_result = rrl_all_result;
if (rrl_result == DNS_RRL_RESULT_OK)
level = DNS_RRL_LOG_DEBUG2;
else
level = DNS_RRL_LOG_DEBUG1;
if (isc_log_wouldlog(dns_lctx, level)) {
if (isc_log_wouldlog(dns_lctx, DNS_RRL_LOG_DEBUG1)) {
make_log_buf(rrl, e,
"prefer all-per-second limiting ",
NULL, ISC_TRUE, qname, ISC_FALSE,
DNS_RRL_RESULT_OK, resp_result,
log_buf, log_buf_len);
isc_log_write(dns_lctx, DNS_LOGCATEGORY_RRL,
DNS_LOGMODULE_REQUEST, level,
DNS_LOGMODULE_REQUEST,
DNS_RRL_LOG_DEBUG1,
"%s", log_buf);
}
}

View file

@ -1320,10 +1320,16 @@ dns_view_findzonecut2(dns_view_t *view, dns_name_t *name, dns_name_t *fname,
result = dns_db_findzonecut(db, name, options, now, NULL,
fname, rdataset, sigrdataset);
if (result == ISC_R_SUCCESS) {
#ifdef BIND9
if (zfname != NULL &&
(!dns_name_issubdomain(fname, zfname) ||
(dns_zone_staticstub &&
dns_name_equal(fname, zfname)))) {
(dns_zone_gettype(zone) == dns_zone_staticstub &&
dns_name_equal(fname, zfname))))
#else
if (zfname != NULL &&
!dns_name_issubdomain(fname, zfname))
#endif
{
/*
* We found a zonecut in the cache, but our
* zone delegation is better.

View file

@ -12160,10 +12160,10 @@ dns_zone_notifyreceive(dns_zone_t *zone, isc_sockaddr_t *from,
return (ISC_R_SUCCESS);
}
zone->notifyfrom = *from;
local = zone->masteraddr;
remote = zone->sourceaddr;
remote = zone->masteraddr;
local = zone->sourceaddr;
UNLOCK_ZONE(zone);
dns_zonemgr_unreachabledel(zone->zmgr, &local, &remote);
dns_zonemgr_unreachabledel(zone->zmgr, &remote, &local);
dns_zone_refresh(zone);
return (ISC_R_SUCCESS);
}

View file

@ -22,6 +22,7 @@
#include <ctype.h>
#include <stdio.h> /* for sprintf() */
#include <string.h> /* for strlen() */
#include <assert.h> /* for assert() */
#define ISC__PRINT_SOURCE /* Used to get the isc_print_* prototypes. */
@ -32,29 +33,42 @@
#include <isc/stdlib.h>
#include <isc/util.h>
/*
* We use the system's sprintf so we undef it here.
*/
#undef sprintf
static int
isc__print_printf(void (*emit)(char, void *), void *arg, const char *format, va_list ap);
isc__print_printf(void (*emit)(char, void *), void *arg,
const char *format, va_list ap);
static void
file_emit(char c, void *arg) {
fputc(c, arg);
FILE *fp = arg;
int i = c & 0xff;
putc(i, fp);
}
#if 0
static int
isc_print_vfprintf(FILE *fp, const char *format, va_list ap) {
INSIST(fp != NULL);
INSIST(format != NULL);
assert(fp != NULL);
assert(format != NULL);
return (isc__print_printf(file_emit, fp, format, ap));
}
#endif
int
isc_print_printf(const char *format, ...) {
va_list ap;
int n;
assert(format != NULL);
va_start(ap, format);
n = isc_print_vfprintf(stdout, format, ap);
n = isc__print_printf(file_emit, stdout, format, ap);
va_end(ap);
return (n);
}
@ -64,20 +78,34 @@ isc_print_fprintf(FILE *fp, const char *format, ...) {
va_list ap;
int n;
assert(fp != NULL);
assert(format != NULL);
va_start(ap, format);
n = isc_print_vfprintf(fp, format, ap);
n = isc__print_printf(file_emit, fp, format, ap);
va_end(ap);
return (n);
}
static void
nocheck_emit(char c, void *arg) {
struct { char *str; } *a = arg;
*(a->str)++ = c;
}
int
isc_print_sprintf(char *str, const char *format, ...) {
struct { char *str; } arg;
int n;
va_list ap;
arg.str = str;
va_start(ap, format);
vsprintf(str, format, ap);
n = isc__print_printf(nocheck_emit, &arg, format, ap);
va_end(ap);
return (strlen(str));
return (n);
}
/*!
@ -90,7 +118,7 @@ isc_print_snprintf(char *str, size_t size, const char *format, ...) {
int ret;
va_start(ap, format);
ret = vsnprintf(str, size, format, ap);
ret = isc_print_vsnprintf(str, size, format, ap);
va_end(ap);
return (ret);
@ -106,7 +134,7 @@ string_emit(char c, void *arg) {
if (p->size > 0U) {
*(p->str)++ = c;
(p->size)--;
p->size--;
}
}
@ -115,8 +143,8 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) {
struct { char *str; size_t size; } arg;
int n;
INSIST(str != NULL);
INSIST(format != NULL);
assert(str != NULL);
assert(format != NULL);
arg.str = str;
arg.size = size;
@ -156,14 +184,15 @@ isc__print_printf(void (*emit)(char, void *), void *arg,
int zeropad;
int dot;
double dbl;
isc_boolean_t precision_set;
#ifdef HAVE_LONG_DOUBLE
long double ldbl;
#endif
char fmt[32];
INSIST(emit != NULL);
INSIST(arg != NULL);
INSIST(format != NULL);
assert(emit != NULL);
assert(arg != NULL);
assert(format != NULL);
while (*format != '\0') {
if (*format != '%') {
@ -180,6 +209,7 @@ isc__print_printf(void (*emit)(char, void *), void *arg,
width = precision = 0;
head = "";
pad = zeropad = 0;
precision_set = ISC_FALSE;
do {
if (*format == '#') {
@ -225,10 +255,12 @@ isc__print_printf(void (*emit)(char, void *), void *arg,
dot = 1;
if (*format == '*') {
precision = va_arg(ap, int);
precision_set = ISC_TRUE;
format++;
} else if (isdigit((unsigned char)*format)) {
char *e;
precision = strtoul(format, &e, 10);
precision_set = ISC_TRUE;
format = e;
}
}
@ -275,22 +307,22 @@ isc__print_printf(void (*emit)(char, void *), void *arg,
if (h) {
short int *p;
p = va_arg(ap, short *);
REQUIRE(p != NULL);
assert(p != NULL);
*p = count;
} else if (l) {
long int *p;
p = va_arg(ap, long *);
REQUIRE(p != NULL);
assert(p != NULL);
*p = count;
} else if (z) {
size_t *p;
p = va_arg(ap, size_t *);
REQUIRE(p != NULL);
assert(p != NULL);
*p = count;
} else {
int *p;
p = va_arg(ap, int *);
REQUIRE(p != NULL);
assert(p != NULL);
*p = count;
}
break;
@ -327,12 +359,14 @@ isc__print_printf(void (*emit)(char, void *), void *arg,
tmpui /= 1000000000;
mid = tmpui % 1000000000;
hi = tmpui / 1000000000;
if (hi != 0U)
if (hi != 0U) {
sprintf(buf, "%lu", hi);
else
buf[0] = '\0';
sprintf(buf + strlen(buf), "%lu", mid);
sprintf(buf + strlen(buf), "%lu", lo);
sprintf(buf + strlen(buf),
"%09lu", mid);
} else
sprintf(buf, "%lu", mid);
sprintf(buf + strlen(buf), "%09lu",
lo);
}
goto printint;
case 'o':
@ -360,12 +394,12 @@ isc__print_printf(void (*emit)(char, void *), void *arg,
alt ? "%#lo" : "%lo",
hi);
sprintf(buf + strlen(buf),
"%lo", mid);
"%09lo", mid);
} else
sprintf(buf,
alt ? "%#lo" : "%lo",
mid);
sprintf(buf + strlen(buf), "%lo", lo);
sprintf(buf + strlen(buf), "%09lo", lo);
}
goto printint;
case 'u':
@ -388,12 +422,14 @@ isc__print_printf(void (*emit)(char, void *), void *arg,
tmpui /= 1000000000;
mid = tmpui % 1000000000;
hi = tmpui / 1000000000;
if (hi != 0U)
if (hi != 0U) {
sprintf(buf, "%lu", hi);
else
buf[0] = '\0';
sprintf(buf + strlen(buf), "%lu", mid);
sprintf(buf + strlen(buf), "%lu", lo);
sprintf(buf + strlen(buf),
"%09lu", mid);
} else
sprintf(buf, "%lu", mid);
sprintf(buf + strlen(buf), "%09lu",
lo);
}
goto printint;
case 'x':
@ -417,7 +453,7 @@ isc__print_printf(void (*emit)(char, void *), void *arg,
unsigned long hi = tmpui>>32;
unsigned long lo = tmpui & 0xffffffff;
sprintf(buf, "%lx", hi);
sprintf(buf + strlen(buf), "%lx", lo);
sprintf(buf + strlen(buf), "%08lx", lo);
}
goto printint;
case 'X':
@ -441,11 +477,11 @@ isc__print_printf(void (*emit)(char, void *), void *arg,
unsigned long hi = tmpui>>32;
unsigned long lo = tmpui & 0xffffffff;
sprintf(buf, "%lX", hi);
sprintf(buf + strlen(buf), "%lX", lo);
sprintf(buf + strlen(buf), "%08lX", lo);
}
goto printint;
printint:
if (precision != 0U || width != 0U) {
if (precision_set || width != 0U) {
length = strlen(buf);
if (length < precision)
zeropad = precision - length;
@ -487,21 +523,23 @@ isc__print_printf(void (*emit)(char, void *), void *arg,
break;
case 's':
cp = va_arg(ap, char *);
REQUIRE(cp != NULL);
if (precision != 0U) {
if (precision_set) {
/*
* cp need not be NULL terminated.
*/
const char *tp;
unsigned long n;
if (precision != 0U)
assert(cp != NULL);
n = precision;
tp = cp;
while (n != 0U && *tp != '\0')
n--, tp++;
length = precision - n;
} else {
assert(cp != NULL);
length = strlen(cp);
}
if (width != 0U) {
@ -515,7 +553,7 @@ isc__print_printf(void (*emit)(char, void *), void *arg,
emit(' ', arg);
pad--;
}
if (precision != 0U)
if (precision_set)
while (precision > 0U && *cp != '\0') {
emit(*cp++, arg);
precision--;
@ -579,17 +617,17 @@ isc__print_printf(void (*emit)(char, void *), void *arg,
}
break;
case 'D': /*deprecated*/
INSIST("use %ld instead of %D" == NULL);
assert("use %ld instead of %D" == NULL);
case 'O': /*deprecated*/
INSIST("use %lo instead of %O" == NULL);
assert("use %lo instead of %O" == NULL);
case 'U': /*deprecated*/
INSIST("use %lu instead of %U" == NULL);
assert("use %lu instead of %U" == NULL);
case 'L':
#ifdef HAVE_LONG_DOUBLE
l = 1;
#else
INSIST("long doubles are not supported" == NULL);
assert("long doubles are not supported" == NULL);
#endif
/*FALLTHROUGH*/
case 'e':

View file

@ -53,6 +53,8 @@ ATF_TC_HEAD(snprintf, tc) {
ATF_TC_BODY(snprintf, tc) {
char buf[10000];
isc_uint64_t ll = 8589934592ULL;
isc_uint64_t nn = 20000000000000ULL;
isc_uint64_t zz = 10000000000000000000LLU;
int n;
size_t size;
@ -73,6 +75,31 @@ ATF_TC_BODY(snprintf, tc) {
ATF_CHECK_EQ(n, 10);
ATF_CHECK_STREQ(buf, "8589934592");
memset(buf, 0xff, sizeof(buf));
n = isc_print_snprintf(buf, sizeof(buf), "%qu", nn);
ATF_CHECK_EQ(n, 14);
ATF_CHECK_STREQ(buf, "20000000000000");
memset(buf, 0xff, sizeof(buf));
n = isc_print_snprintf(buf, sizeof(buf), "%llu", nn);
ATF_CHECK_EQ(n, 14);
ATF_CHECK_STREQ(buf, "20000000000000");
memset(buf, 0xff, sizeof(buf));
n = isc_print_snprintf(buf, sizeof(buf), "%qu", zz);
ATF_CHECK_EQ(n, 20);
ATF_CHECK_STREQ(buf, "10000000000000000000");
memset(buf, 0xff, sizeof(buf));
n = isc_print_snprintf(buf, sizeof(buf), "%llu", zz);
ATF_CHECK_EQ(n, 20);
ATF_CHECK_STREQ(buf, "10000000000000000000");
memset(buf, 0xff, sizeof(buf));
n = isc_print_snprintf(buf, sizeof(buf), "%lld", nn);
ATF_CHECK_EQ(n, 14);
ATF_CHECK_STREQ(buf, "20000000000000");
size = 1000;
memset(buf, 0xff, sizeof(buf));
n = isc_print_snprintf(buf, sizeof(buf), "%zu", size);

View file

@ -704,7 +704,7 @@ isc__app_ctxrun(isc_appctx_t *ctx0) {
return (ISC_R_UNEXPECTED);
}
#endif
result = sigsuspend(&sset);
(void)sigsuspend(&sset);
#endif /* HAVE_SIGWAIT */
if (ctx->want_reload) {

View file

@ -118,7 +118,7 @@
./bin/dnssec/Makefile.in MAKE 2000,2001,2002,2004,2005,2007,2008,2009,2012,2013,2014
./bin/dnssec/dnssec-dsfromkey.8 MAN DOCBOOK
./bin/dnssec/dnssec-dsfromkey.c C 2008,2009,2010,2011,2012,2014,2015
./bin/dnssec/dnssec-dsfromkey.docbook SGML 2008,2009,2010,2011,2012,2014
./bin/dnssec/dnssec-dsfromkey.docbook SGML 2008,2009,2010,2011,2012,2014,2015
./bin/dnssec/dnssec-dsfromkey.html HTML DOCBOOK
./bin/dnssec/dnssec-importkey.8 MAN 2013,2014
./bin/dnssec/dnssec-importkey.c C 2013,2014,2015
@ -245,7 +245,7 @@
./bin/named/include/named/update.h C 1999,2000,2001,2004,2005,2007
./bin/named/include/named/xfrout.h C 1999,2000,2001,2004,2005,2007
./bin/named/include/named/zoneconf.h C 1999,2000,2001,2002,2004,2005,2006,2007,2010,2011
./bin/named/interfacemgr.c C 1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2011,2012,2013,2014
./bin/named/interfacemgr.c C 1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2011,2012,2013,2014,2015
./bin/named/listenlist.c C 2000,2001,2004,2005,2007
./bin/named/log.c C 1999,2000,2001,2002,2004,2005,2006,2007,2009,2013
./bin/named/logconf.c C 1999,2000,2001,2004,2005,2006,2007,2011,2013,2015
@ -279,7 +279,7 @@
./bin/named/unix/dlz_dlopen_driver.c C 2011,2012,2013,2014
./bin/named/unix/include/named/os.h C 1999,2000,2001,2002,2004,2005,2007,2008,2009
./bin/named/unix/os.c C 1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010,2011,2013,2014
./bin/named/update.c C 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014
./bin/named/update.c C 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015
./bin/named/win32/dlz_dlopen_driver.c C 2011,2014
./bin/named/win32/include/named/ntservice.h C 1999,2000,2001,2002,2003,2004,2007
./bin/named/win32/include/named/os.h C 1999,2000,2001,2002,2004,2007,2008,2009
@ -642,7 +642,7 @@
./bin/tests/rbt/dns_rbtnodechain_next_data X 1999,2000,2001
./bin/tests/rbt/dns_rbtnodechain_prev.data X 1999,2000,2001
./bin/tests/rbt/dns_rbtnodechain_prev_data X 1999,2000,2001
./bin/tests/rbt/t_rbt.c C 1998,1999,2000,2001,2003,2004,2005,2007,2009,2011,2012,2013
./bin/tests/rbt/t_rbt.c C 1998,1999,2000,2001,2003,2004,2005,2007,2009,2011,2012,2013,2015
./bin/tests/rbt/win32/t_rbt.dsp.in X 2013
./bin/tests/rbt/win32/t_rbt.dsw X 2013
./bin/tests/rbt/win32/t_rbt.mak.in X 2013
@ -1056,6 +1056,12 @@
./bin/tests/system/dnssec/ns1/sign.sh SH 2000,2001,2002,2003,2004,2006,2007,2008,2009,2010,2011,2012,2013,2014
./bin/tests/system/dnssec/ns2/algroll.db.in ZONE 2010
./bin/tests/system/dnssec/ns2/badparam.db.in ZONE 2010
./bin/tests/system/dnssec/ns2/cdnskey-auto.secure.db.in ZONE 2015
./bin/tests/system/dnssec/ns2/cdnskey-update.secure.db.in ZONE 2015
./bin/tests/system/dnssec/ns2/cdnskey.secure.db.in ZONE 2015
./bin/tests/system/dnssec/ns2/cds-auto.secure.db.in ZONE 2015
./bin/tests/system/dnssec/ns2/cds-update.secure.db.in ZONE 2015
./bin/tests/system/dnssec/ns2/cds.secure.db.in ZONE 2015
./bin/tests/system/dnssec/ns2/child.nsec3.example.db ZONE 2006,2008
./bin/tests/system/dnssec/ns2/child.optout.example.db ZONE 2006,2008
./bin/tests/system/dnssec/ns2/dlv.db.in ZONE 2004,2007
@ -1063,10 +1069,10 @@
./bin/tests/system/dnssec/ns2/example.db.in ZONE 2000,2001,2002,2004,2007,2008,2009,2010,2011,2012,2013,2014
./bin/tests/system/dnssec/ns2/in-addr.arpa.db.in ZONE 2014
./bin/tests/system/dnssec/ns2/insecure.secure.example.db ZONE 2000,2001,2004,2007,2013
./bin/tests/system/dnssec/ns2/named.conf CONF-C 2000,2001,2002,2004,2006,2007,2008,2010,2011,2014
./bin/tests/system/dnssec/ns2/named.conf CONF-C 2000,2001,2002,2004,2006,2007,2008,2010,2011,2014,2015
./bin/tests/system/dnssec/ns2/private.secure.example.db.in ZONE 2000,2001,2004,2007
./bin/tests/system/dnssec/ns2/rfc2335.example.db X 2004
./bin/tests/system/dnssec/ns2/sign.sh SH 2000,2001,2002,2003,2004,2006,2007,2008,2009,2010,2011,2012,2014
./bin/tests/system/dnssec/ns2/sign.sh SH 2000,2001,2002,2003,2004,2006,2007,2008,2009,2010,2011,2012,2014,2015
./bin/tests/system/dnssec/ns2/single-nsec3.db.in ZONE 2010
./bin/tests/system/dnssec/ns3/auto-nsec.example.db.in ZONE 2011
./bin/tests/system/dnssec/ns3/auto-nsec3.example.db.in ZONE 2011
@ -1587,7 +1593,7 @@
./bin/tests/system/rrsetorder/ns2/named.conf CONF-C 2006,2007
./bin/tests/system/rrsetorder/ns3/named.conf CONF-C 2006,2007
./bin/tests/system/rrsetorder/tests.sh SH 2006,2007,2008,2011,2012,2014
./bin/tests/system/rsabigexponent/Makefile.in MAKE 2012
./bin/tests/system/rsabigexponent/Makefile.in MAKE 2012,2015
./bin/tests/system/rsabigexponent/bigkey.c C 2012,2014,2015
./bin/tests/system/rsabigexponent/clean.sh SH 2012,2014
./bin/tests/system/rsabigexponent/conf/bad01.conf CONF-C 2012
@ -1693,7 +1699,7 @@
./bin/tests/system/testcrypto.sh SH 2014
./bin/tests/system/testsock.pl PERL 2000,2001,2004,2007,2010,2011,2012,2013
./bin/tests/system/testsock6.pl PERL 2010,2012,2014
./bin/tests/system/tkey/Makefile.in MAKE 2001,2002,2004,2007,2009,2012
./bin/tests/system/tkey/Makefile.in MAKE 2001,2002,2004,2007,2009,2012,2015
./bin/tests/system/tkey/clean.sh SH 2001,2004,2007,2011,2012,2013,2014
./bin/tests/system/tkey/keycreate.c C 2001,2004,2005,2007,2009,2011,2012,2014,2015
./bin/tests/system/tkey/keydelete.c C 2001,2004,2005,2007,2009,2010,2011,2014,2015
@ -1858,7 +1864,7 @@
./bin/tests/t_api.pl PERL 1999,2000,2001,2004,2007,2012
./bin/tests/task_test.c C 1998,1999,2000,2001,2004,2007,2013,2014,2015
./bin/tests/tasks/Makefile.in MAKE 1998,1999,2000,2001,2002,2004,2007,2009,2012
./bin/tests/tasks/t_tasks.c C 1998,1999,2000,2001,2004,2005,2007,2009,2011,2013,2014
./bin/tests/tasks/t_tasks.c C 1998,1999,2000,2001,2004,2005,2007,2009,2011,2013,2014,2015
./bin/tests/tasks/win32/t_tasks.dsp.in X 2013
./bin/tests/tasks/win32/t_tasks.dsw X 2013
./bin/tests/tasks/win32/t_tasks.mak.in X 2013
@ -2540,6 +2546,7 @@
./doc/arm/notes.xml SGML 2014,2015
./doc/arm/pkcs11.xml SGML 2010,2012,2013,2014
./doc/design/addressdb TXT.BRIEF 2000,2001,2004
./doc/design/cds-child TXT.BRIEF 2015
./doc/design/compression TXT.BRIEF 1999,2000,2001,2004
./doc/design/database TXT.BRIEF 1999,2000,2001,2004
./doc/design/db_rules TXT.BRIEF 1999,2000,2001,2004
@ -2653,14 +2660,14 @@
./lib/dns/dbtable.c C 1999,2000,2001,2004,2005,2007,2013
./lib/dns/diff.c C 2000,2001,2002,2003,2004,2005,2007,2008,2009,2011,2013,2014,2015
./lib/dns/dispatch.c C 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2011,2012,2013,2014,2015
./lib/dns/dlz.c C.PORTION 1999,2000,2001,2005,2007,2009,2010,2011,2012,2013
./lib/dns/dlz.c C.PORTION 1999,2000,2001,2005,2007,2009,2010,2011,2012,2013,2015
./lib/dns/dns64.c C 2010,2011,2014
./lib/dns/dnssec.c C 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015
./lib/dns/ds.c C 2002,2003,2004,2005,2006,2007,2010,2012
./lib/dns/dst_api.c C.NAI 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013
./lib/dns/dst_api.c C.NAI 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2015
./lib/dns/dst_internal.h C.NAI 2000,2001,2002,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013
./lib/dns/dst_lib.c C 1999,2000,2001,2004,2005,2007
./lib/dns/dst_openssl.h C 2002,2004,2005,2007,2008,2009,2011,2012
./lib/dns/dst_openssl.h C 2002,2004,2005,2007,2008,2009,2011,2012,2015
./lib/dns/dst_parse.c C.NAI 1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2015
./lib/dns/dst_parse.h C.NAI 2000,2001,2002,2004,2005,2006,2007,2008,2009,2010,2012
./lib/dns/dst_result.c C 1999,2000,2001,2004,2005,2007,2008,2012,2013
@ -2731,7 +2738,7 @@
./lib/dns/include/dns/rdatatype.h C 1998,1999,2000,2001,2004,2005,2006,2007,2008
./lib/dns/include/dns/request.h C 2000,2001,2002,2004,2005,2006,2007,2009,2010,2014
./lib/dns/include/dns/resolver.h C 1999,2000,2001,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2014
./lib/dns/include/dns/result.h C 1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013
./lib/dns/include/dns/result.h C 1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2015
./lib/dns/include/dns/rootns.h C 1999,2000,2001,2004,2005,2006,2007
./lib/dns/include/dns/rpz.h C 2011,2012,2013
./lib/dns/include/dns/rriterator.h C 2009,2011
@ -2779,12 +2786,12 @@
./lib/dns/ncache.c C 1999,2000,2001,2002,2003,2004,2005,2007,2008,2010,2011,2012,2013,2015
./lib/dns/nsec.c C 1999,2000,2001,2003,2004,2005,2007,2008,2009,2011,2012,2013,2014,2015
./lib/dns/nsec3.c C 2006,2008,2009,2010,2011,2012,2013,2014,2015
./lib/dns/openssl_link.c C.NAI 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2014
./lib/dns/openssldh_link.c C.NAI 1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2011,2012,2013,2014
./lib/dns/openssldsa_link.c C.NAI 1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2011,2012,2013
./lib/dns/openssl_link.c C.NAI 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2014,2015
./lib/dns/openssldh_link.c C.NAI 1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2011,2012,2013,2014,2015
./lib/dns/openssldsa_link.c C.NAI 1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2011,2012,2013,2015
./lib/dns/opensslecdsa_link.c C 2012,2013,2014
./lib/dns/opensslgost_link.c C 2010,2011,2012,2013,2014
./lib/dns/opensslrsa_link.c C 2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2011,2012,2013,2014
./lib/dns/opensslrsa_link.c C 2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2011,2012,2013,2014,2015
./lib/dns/order.c C 2002,2004,2005,2007
./lib/dns/peer.c C 2000,2001,2003,2004,2005,2006,2007,2008,2009,2012,2014
./lib/dns/portlist.c C 2003,2004,2005,2006,2007,2014
@ -2943,11 +2950,11 @@
./lib/dns/rdataslab.c C 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014
./lib/dns/request.c C 2000,2001,2002,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015
./lib/dns/resolver.c C 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015
./lib/dns/result.c C 1998,1999,2000,2001,2002,2003,2004,2005,2007,2008,2009,2010,2011,2012,2013
./lib/dns/result.c C 1998,1999,2000,2001,2002,2003,2004,2005,2007,2008,2009,2010,2011,2012,2013,2015
./lib/dns/rootns.c C 1999,2000,2001,2002,2004,2005,2007,2008,2010,2012,2013,2014,2015
./lib/dns/rpz.c C 2011,2012,2013,2014,2015
./lib/dns/rriterator.c C 2009,2011,2012
./lib/dns/rrl.c C 2013,2014
./lib/dns/rrl.c C 2013,2014,2015
./lib/dns/sdb.c C 2000,2001,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2015
./lib/dns/sdlz.c C.PORTION 1999,2000,2001,2005,2006,2007,2008,2009,2010,2011,2012,2015
./lib/dns/soa.c C 2000,2001,2004,2005,2007,2009