From 8e5a32f4dc2ecf66df91a6eab3434ebfe54d2080 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Tue, 14 Aug 2018 07:27:57 +0000 Subject: [PATCH] - Fix that printout of error for cycle targets is a verbosity 4 printout and does not wrongly print it is a memory error. git-svn-id: file:///svn/unbound/trunk@4851 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 4 ++++ validator/validator.c | 24 ++++++++++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 7f5c0e88c..bfc76e2e7 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +14 August 2018: Wouter + - Fix that printout of error for cycle targets is a verbosity 4 + printout and does not wrongly print it is a memory error. + 10 August 2018: Wouter - Fix #4144: dns64 module caches wrong (negative) information. diff --git a/validator/validator.c b/validator/validator.c index 5777b2932..7b1ebc7b7 100644 --- a/validator/validator.c +++ b/validator/validator.c @@ -388,6 +388,14 @@ generate_request(struct module_qstate* qstate, int id, uint8_t* name, if(qtype == LDNS_RR_TYPE_DLV) valrec = 0; else valrec = 1; + + fptr_ok(fptr_whitelist_modenv_detect_cycle(qstate->env->detect_cycle)); + if((*qstate->env->detect_cycle)(qstate, &ask, + (uint16_t)(BIT_RD|flags), 0, valrec)) { + verbose(VERB_ALGO, "Could not generate request: cycle detected"); + return 0; + } + if(detached) { struct mesh_state* sub = NULL; fptr_ok(fptr_whitelist_modenv_add_sub( @@ -467,7 +475,7 @@ generate_keytag_query(struct module_qstate* qstate, int id, LDNS_RR_TYPE_NULL, ta->dclass); if(!generate_request(qstate, id, keytagdname, dnamebuf_len, LDNS_RR_TYPE_NULL, ta->dclass, 0, &newq, 1)) { - log_err("failed to generate key tag signaling request"); + verbose(VERB_ALGO, "failed to generate key tag signaling request"); return 0; } @@ -524,12 +532,12 @@ prime_trust_anchor(struct module_qstate* qstate, struct val_qstate* vq, if(newq && qstate->env->cfg->trust_anchor_signaling && !generate_keytag_query(qstate, id, toprime)) { - log_err("keytag signaling query failed"); + verbose(VERB_ALGO, "keytag signaling query failed"); return 0; } if(!ret) { - log_err("Could not prime trust anchor: out of memory"); + verbose(VERB_ALGO, "Could not prime trust anchor"); return 0; } /* ignore newq; validator does not need state created for that @@ -1673,7 +1681,7 @@ processFindKey(struct module_qstate* qstate, struct val_qstate* vq, int id) if(!generate_request(qstate, id, vq->ds_rrset->rk.dname, vq->ds_rrset->rk.dname_len, LDNS_RR_TYPE_DNSKEY, vq->qchase.qclass, BIT_CD, &newq, 0)) { - log_err("mem error generating DNSKEY request"); + verbose(VERB_ALGO, "error generating DNSKEY request"); return val_error(qstate, id); } return 0; @@ -1745,7 +1753,7 @@ processFindKey(struct module_qstate* qstate, struct val_qstate* vq, int id) if(!generate_request(qstate, id, vq->ds_rrset->rk.dname, vq->ds_rrset->rk.dname_len, LDNS_RR_TYPE_DNSKEY, vq->qchase.qclass, BIT_CD, &newq, 0)) { - log_err("mem error generating DNSKEY request"); + verbose(VERB_ALGO, "error generating DNSKEY request"); return val_error(qstate, id); } return 0; @@ -1774,7 +1782,7 @@ processFindKey(struct module_qstate* qstate, struct val_qstate* vq, int id) if(!generate_request(qstate, id, target_key_name, target_key_len, LDNS_RR_TYPE_DS, vq->qchase.qclass, BIT_CD, &newq, 0)) { - log_err("mem error generating DS request"); + verbose(VERB_ALGO, "error generating DS request"); return val_error(qstate, id); } return 0; @@ -1784,7 +1792,7 @@ processFindKey(struct module_qstate* qstate, struct val_qstate* vq, int id) if(!generate_request(qstate, id, vq->ds_rrset->rk.dname, vq->ds_rrset->rk.dname_len, LDNS_RR_TYPE_DNSKEY, vq->qchase.qclass, BIT_CD, &newq, 0)) { - log_err("mem error generating DNSKEY request"); + verbose(VERB_ALGO, "error generating DNSKEY request"); return val_error(qstate, id); } @@ -2367,7 +2375,7 @@ processDLVLookup(struct module_qstate* qstate, struct val_qstate* vq, if(!generate_request(qstate, id, vq->ds_rrset->rk.dname, vq->ds_rrset->rk.dname_len, LDNS_RR_TYPE_DNSKEY, vq->qchase.qclass, BIT_CD, &newq, 0)) { - log_err("mem error generating DNSKEY request"); + verbose(VERB_ALGO, "error generating DNSKEY request"); return val_error(qstate, id); } return 0;