From 5a33598e88ad8fbc0affa74dee0a2d8cc4010fbc Mon Sep 17 00:00:00 2001 From: Cy Schubert Date: Sat, 16 Mar 2024 17:58:33 -0600 Subject: unbound: Vendor import 1.19.3 Release notes at https://www.nlnetlabs.nl/news/2024/Mar/14/unbound-1.19.3-released/ --- validator/autotrust.c | 8 +++++-- validator/val_sigcrypt.c | 2 +- validator/val_utils.c | 55 +++++++++++++++++++++++++++++++++++++++--------- validator/validator.c | 2 ++ 4 files changed, 54 insertions(+), 13 deletions(-) (limited to 'validator') diff --git a/validator/autotrust.c b/validator/autotrust.c index 3011a0ace7a2..3eb13b35c229 100644 --- a/validator/autotrust.c +++ b/validator/autotrust.c @@ -353,17 +353,21 @@ autr_tp_create(struct val_anchors* anchors, uint8_t* own, size_t own_len, lock_basic_lock(&anchors->lock); if(!rbtree_insert(anchors->tree, &tp->node)) { + char buf[LDNS_MAX_DOMAINLEN+1]; lock_basic_unlock(&anchors->lock); - log_err("trust anchor presented twice"); + dname_str(tp->name, buf); + log_err("trust anchor for '%s' presented twice", buf); free(tp->name); free(tp->autr); free(tp); return NULL; } if(!rbtree_insert(&anchors->autr->probe, &tp->autr->pnode)) { + char buf[LDNS_MAX_DOMAINLEN+1]; (void)rbtree_delete(anchors->tree, tp); lock_basic_unlock(&anchors->lock); - log_err("trust anchor in probetree twice"); + dname_str(tp->name, buf); + log_err("trust anchor for '%s' in probetree twice", buf); free(tp->name); free(tp->autr); free(tp); diff --git a/validator/val_sigcrypt.c b/validator/val_sigcrypt.c index f4b866366f3c..7c2b9d7e6608 100644 --- a/validator/val_sigcrypt.c +++ b/validator/val_sigcrypt.c @@ -748,7 +748,6 @@ dnskey_verify_rrset(struct module_env* env, struct val_env* ve, return sec_status_bogus; } } - verbose(VERB_ALGO, "rrset failed to verify: all signatures are bogus"); if(!numchecked) { *reason = "signature for expected key and algorithm missing"; if(reason_bogus) @@ -761,6 +760,7 @@ dnskey_verify_rrset(struct module_env* env, struct val_env* ve, *reason = "algorithm refused by cryptolib"; return sec_status_indeterminate; } + verbose(VERB_ALGO, "rrset failed to verify: all signatures are bogus"); return sec_status_bogus; } diff --git a/validator/val_utils.c b/validator/val_utils.c index 67a958ae2ade..c316183a9d9e 100644 --- a/validator/val_utils.c +++ b/validator/val_utils.c @@ -424,11 +424,13 @@ static enum sec_status verify_dnskeys_with_ds_rr(struct module_env* env, struct val_env* ve, struct ub_packed_rrset_key* dnskey_rrset, struct ub_packed_rrset_key* ds_rrset, size_t ds_idx, char** reason, - sldns_ede_code *reason_bogus, struct module_qstate* qstate) + sldns_ede_code *reason_bogus, struct module_qstate* qstate, + int *nonechecked) { enum sec_status sec = sec_status_bogus; size_t i, num, numchecked = 0, numhashok = 0, numsizesupp = 0; num = rrset_get_count(dnskey_rrset); + *nonechecked = 0; for(i=0; i