4126. [bug] Addressed a regression introduced in change #4121.
[RT #39611]
+4126. [bug] Addressed a regression introduced in change #4121.
+ [RT #39611]
+
4125. [test] Added tests for dig, renamed delv test to digdelv.
[RT #39490]
+
4124. [func] Log errors or warnings encountered when parsing the
internal default configuration. Clarify the logging
of errors and warnings encountered in rndc
rdataset = NULL;
result = dns_message_gettemprdataset(message, &rdataset);
check_result(result, "dns_message_gettemprdataset()");
- dns_rdataset_init(rdataset);
dns_rdataset_makequestion(rdataset, rdclass, rdtype);
ISC_LIST_APPEND(name->list, rdataset, link);
}
rdatalist->rdclass = lookup->rdclass;
ISC_LIST_APPEND(rdatalist->rdata, rdata, link);
- dns_rdataset_init(rdataset);
dns_rdatalist_tordataset(rdatalist, rdataset);
result = dns_message_gettempname(lookup->sendmsg, &soaname);
"dns_message_gettemprdataset failed: done");
return (NULL);
}
- dns_rdataset_init(rdataset);
CTRACE(ISC_LOG_DEBUG(3), "query_newrdataset: done");
return (rdataset);
if (result != ISC_R_SUCCESS)
goto cleanup;
- dns_rdataset_init(dns64_rdataset);
dns_rdatalist_init(dns64_rdatalist);
dns64_rdatalist->rdclass = dns_rdataclass_in;
dns64_rdatalist->type = dns_rdatatype_aaaa;
if (result != ISC_R_SUCCESS)
goto cleanup;
- dns_rdataset_init(myrdataset);
dns_rdatalist_init(myrdatalist);
myrdatalist->rdclass = dns_rdataclass_in;
myrdatalist->type = dns_rdatatype_aaaa;
dns_message_puttemprdata(client->message, &rdata);
return (result);
}
- dns_rdataset_init(rdataset);
rdatalist->type = dns_rdatatype_cname;
rdatalist->rdclass = client->message->rdclass;
rdatalist->ttl = ttl;
* In case num_zones has changed since zbits was
* originally calculated
*/
- if (rpz_num >= rpzs->p.num_zones)
- break;
+ if (rpz_num >= rpzs->p.num_zones) {
+ CTRACE(ISC_LOG_ERROR,
+ "rpz_rewrite_ip: rpz_num is higher than "
+ "number of zones");
+ rpz_clean(&p_zone, &p_db, &p_node, p_rdatasetp);
+ st->m.policy = DNS_RPZ_POLICY_ERROR;
+ return (DNS_R_SERVFAIL);
+ }
/*
* Do not try applying policy zones that cannot replace a
* In case num_zones has changed since the 'have'
* originally calculated
*/
- if (rpz_num >= rpzs->p.num_zones)
- break;
+ if (rpz_num >= rpzs->p.num_zones) {
+ CTRACE(ISC_LOG_ERROR,
+ "rpz_rewrite_name: rpz_num is higher than "
+ "number of zones");
+ rpz_clean(&p_zone, &p_db, &p_node, rdatasetp);
+ st->m.policy = DNS_RPZ_POLICY_ERROR;
+ return (DNS_R_SERVFAIL);
+ }
/*
* Do not check policy zones that cannot replace a previously
LOCK(&rpzs->maint_lock);
if (rpzs->p.num_zones == 0 ||
(!RECURSIONOK(client) && rpzs->p.no_rd_ok == 0) ||
- !rpz_ck_dnssec(client, result, ordataset, osigset))
+ !rpz_ck_dnssec(client, qresult, ordataset, osigset))
{
UNLOCK(&rpzs->maint_lock);
return (DNS_R_DISALLOWED);
st->m.type = DNS_RPZ_TYPE_BAD;
st->m.policy = DNS_RPZ_POLICY_MISS;
st->m.ttl = ~0;
- st->m.prefix = 0;
memset(&st->r, 0, sizeof(st->r));
memset(&st->q, 0, sizeof(st->q));
dns_fixedname_init(&st->_p_namef);
{
CTRACE(ISC_LOG_DEBUG(3), "resume from RPZ recursion");
- /*
- * Has response policy changed out from under us?
- */
- if (rpz_st->rpz_ver != client->view->rpzs->rpz_ver) {
- CTRACE(ISC_LOG_ERROR,
- "query_find: RPZ settings out of date");
- QUERY_ERROR(DNS_R_SERVFAIL);
- goto cleanup;
- }
is_zone = rpz_st->q.is_zone;
authoritative = rpz_st->q.authoritative;
zone = rpz_st->q.zone;
dns64_exclude = ISC_TRUE;
}
+ if (rpz_st != NULL &&
+ (rpz_st->state & DNS_RPZ_RECURSING) != 0)
+ {
+ /*
+ * Has response policy changed out from under us?
+ */
+ if (rpz_st->rpz_ver != client->view->rpzs->rpz_ver) {
+ CTRACE(ISC_LOG_ERROR,
+ "query_find: RPZ settings out of date");
+ QUERY_ERROR(DNS_R_SERVFAIL);
+ goto cleanup;
+ }
+ }
+
/*
* We'll need some resources...
*/
result = dns_message_gettemprdataset(msg, &qrdataset);
if (result != ISC_R_SUCCESS)
goto failure;
- dns_rdataset_init(qrdataset);
dns_rdataset_makequestion(qrdataset,
xfr->client->message->rdclass,
xfr->qtype);
result = dns_message_gettemprdataset(msg, &msgrds);
if (result != ISC_R_SUCCESS)
goto failure;
- dns_rdataset_init(msgrds);
result = dns_rdatalist_tordataset(msgrdl, msgrds);
INSIST(result == ISC_R_SUCCESS);
rdata->rdclass = rdatalist->rdclass;
rdata->type = rdatatype;
ISC_LIST_APPEND(rdatalist->rdata, rdata, link);
- dns_rdataset_init(rdataset);
dns_rdatalist_tordataset(rdatalist, rdataset);
ISC_LIST_INIT(name->list);
ISC_LIST_APPEND(name->list, rdataset, link);
rdatalist->covers = rdatatype;
rdatalist->ttl = (dns_ttl_t)ttl;
ISC_LIST_APPEND(rdatalist->rdata, rdata, link);
- dns_rdataset_init(rdataset);
dns_rdatalist_tordataset(rdatalist, rdataset);
ISC_LIST_INIT(name->list);
ISC_LIST_APPEND(name->list, rdataset, link);
dns_name_init(qname, NULL);
dns_name_clone(dns_fixedname_name(&queryname), qname);
- dns_rdataset_init(qrdataset);
dns_rdataset_makequestion(qrdataset, dns_rdataclass_in,
dns_rdatatype_a);
ISC_LIST_APPEND(qname->list, qrdataset, link);
result = dns_message_gettemprdataset(query, &question);
CHECK("dns_message_gettemprdataset", result);
- dns_rdataset_init(question);
dns_rdataset_makequestion(question, dns_rdataclass_in,
dns_rdatatype_a);
result = dns_message_gettempname(query, &qname);
dns_name_init(qname, NULL);
dns_name_clone(dns_fixedname_name(&queryname), qname);
- dns_rdataset_init(qrdataset);
dns_rdataset_makequestion(qrdataset, dns_rdataclass_in,
dns_rdatatype_a);
ISC_LIST_APPEND(qname->list, qrdataset, link);
dns_name_init(qname, NULL);
dns_name_clone(dns_fixedname_name(&queryname), qname);
- dns_rdataset_init(qrdataset);
dns_rdataset_makequestion(qrdataset, query->rdclass,
query->rdtype);
ISC_LIST_APPEND(qname->list, qrdataset, link);
* trick to get the latest counter from the original
* header.
*/
- dns_rdataset_init(ardataset);
dns_rdataset_clone(erdataset, ardataset);
ISC_LIST_APPEND(fname->list, ardataset, link);
}
result = dns_message_gettemprdataset(msg, &newrdataset);
if (result != ISC_R_SUCCESS)
goto fail;
- dns_rdataset_init(newrdataset);
dns_rdatalist_tordataset(rdatalist, newrdataset);
ISC_LIST_APPEND(newname->list, newrdataset, link);
ISC_LIST_APPEND(datalist->rdata, rdata, link);
dataset = NULL;
RETERR(dns_message_gettemprdataset(msg, &dataset));
- dns_rdataset_init(dataset);
RUNTIME_CHECK(dns_rdatalist_tordataset(datalist, dataset) == ISC_R_SUCCESS);
msg->sig0 = dataset;
/*
* The trigger counter type.
*/
-typedef ssize_t dns_rpz_trigger_counter_t;
+typedef size_t dns_rpz_trigger_counter_t;
/*
* The number of triggers of each type in a response policy zone.
result = dns_message_gettemprdataset(message, &rdataset);
if (result != ISC_R_SUCCESS)
goto cleanup;
- dns_rdataset_init(rdataset);
rdatalist->type = dns_rdatatype_opt;
*/
dns_name_init(qname, NULL);
dns_name_clone(&fctx->name, qname);
- dns_rdataset_init(qrdataset);
dns_rdataset_makequestion(qrdataset, res->rdclass, fctx->type);
ISC_LIST_APPEND(qname->list, qrdataset, link);
dns_message_addname(fctx->qmessage, qname, DNS_SECTION_QUESTION);
fix_qname_skip_recurse(rpzs);
}
} else {
- REQUIRE(*cnt > 0);
+ REQUIRE(*cnt != 0);
if (--*cnt == 0) {
*have &= ~DNS_RPZ_ZBIT(rpz_num);
fix_qname_skip_recurse(rpzs);
isc_log_write(dns_lctx, DNS_LOGCATEGORY_RPZ,
DNS_LOGMODULE_RBTDB, DNS_RPZ_INFO_LEVEL,
"(re)loading policy zone '%s' changed from"
- " %zd to %zd qname, %zd to %zd nsdname,"
- " %zd to %zd IP, %zd to %zd NSIP entries",
+ " %lu to %lu qname, %lu to %lu nsdname,"
+ " %lu to %lu IP, %lu to %lu NSIP entries",
namebuf,
- old_totals.qname, rpzs->total_triggers.qname,
- old_totals.nsdname, rpzs->total_triggers.nsdname,
- old_totals.ipv4 + old_totals.ipv6,
- rpzs->total_triggers.ipv4 + rpzs->total_triggers.ipv6,
- old_totals.nsipv4 + old_totals.nsipv6,
- rpzs->total_triggers.nsipv4 + rpzs->total_triggers.nsipv6);
+ (unsigned long) old_totals.qname,
+ (unsigned long) rpzs->total_triggers.qname,
+ (unsigned long) old_totals.nsdname,
+ (unsigned long) rpzs->total_triggers.nsdname,
+ (unsigned long) old_totals.ipv4 + old_totals.ipv6,
+ (unsigned long) (rpzs->total_triggers.ipv4 +
+ rpzs->total_triggers.ipv6),
+ (unsigned long) old_totals.nsipv4 + old_totals.nsipv6,
+ (unsigned long) (rpzs->total_triggers.nsipv4 +
+ rpzs->total_triggers.nsipv6));
}
/*
ISC_LIST_APPEND(newlist->rdata, newrdata, link);
RETERR(dns_message_gettemprdataset(msg, &newset));
- dns_rdataset_init(newset);
RETERR(dns_rdatalist_tordataset(newlist, newset));
ISC_LIST_INIT(newname->list);
RETERR(dns_message_gettempname(msg, &aname));
RETERR(dns_message_gettemprdataset(msg, &question));
- dns_rdataset_init(question);
dns_rdataset_makequestion(question, dns_rdataclass_any,
dns_rdatatype_tkey);
ISC_LIST_APPEND(tkeylist->rdata, rdata, link);
RETERR(dns_message_gettemprdataset(msg, &tkeyset));
- dns_rdataset_init(tkeyset);
RETERR(dns_rdatalist_tordataset(tkeylist, tkeyset));
dns_name_init(qname, NULL);
datalist->rdclass = dns_rdataclass_any;
datalist->type = dns_rdatatype_tsig;
ISC_LIST_APPEND(datalist->rdata, rdata, link);
- dns_rdataset_init(dataset);
RUNTIME_CHECK(dns_rdatalist_tordataset(datalist, dataset)
== ISC_R_SUCCESS);
msg->tsig = dataset;
ISC_LIST_APPEND(rdl->rdata, rdata, link);
CHECK(dns_message_gettemprdataset(msg, &rds));
- dns_rdataset_init(rds);
CHECK(dns_rdatalist_tordataset(rdl, rds));
CHECK(dns_message_gettempname(msg, &name));
/* Formulate the question and attach it to the question name. */
CHECK(dns_message_gettemprdataset(msg, &qrdataset));
- dns_rdataset_init(qrdataset);
dns_rdataset_makequestion(qrdataset, xfr->rdclass, xfr->reqtype);
ISC_LIST_APPEND(qname->list, qrdataset, link);
qrdataset = NULL;
*/
dns_name_init(qname, NULL);
dns_name_clone(&zone->origin, qname);
- dns_rdataset_init(qrdataset);
dns_rdataset_makequestion(qrdataset, zone->rdclass, rdtype);
ISC_LIST_APPEND(qname->list, qrdataset, link);
dns_message_addname(message, qname, DNS_SECTION_QUESTION);
*/
dns_name_init(tempname, NULL);
dns_name_clone(&zone->origin, tempname);
- dns_rdataset_init(temprdataset);
dns_rdataset_makequestion(temprdataset, zone->rdclass,
dns_rdatatype_soa);
ISC_LIST_APPEND(tempname->list, temprdataset, link);
temprdatalist->ttl = rdataset.ttl;
ISC_LIST_APPEND(temprdatalist->rdata, temprdata, link);
- dns_rdataset_init(temprdataset);
result = dns_rdatalist_tordataset(temprdatalist, temprdataset);
if (result != ISC_R_SUCCESS)
goto soa_cleanup;
dns_name_init(qname, NULL);
dns_name_clone(qname0, qname);
- dns_rdataset_init(qrdataset);
dns_rdataset_makequestion(qrdataset, message->rdclass, rdtype);
ISC_LIST_APPEND(qname->list, qrdataset, link);
dns_message_addname(message, qname, DNS_SECTION_QUESTION);
dns_name_init(qname, NULL);
dns_name_clone(qname0, qname);
- dns_rdataset_init(qrdataset);
dns_rdataset_makequestion(qrdataset, message->rdclass, rdtype);
ISC_LIST_APPEND(qname->list, qrdataset, link);
dns_message_addname(message, qname, DNS_SECTION_QUESTION);