goto failure;
}
+ kname = dns_fixedname_initname(&kfetch->name);
+ result = dns_name_dup(name, zone->mctx, kname);
+ if (result != ISC_R_SUCCESS) {
+ isc_mem_put(zone->mctx, kfetch, sizeof(dns_keyfetch_t));
+ fetch_err = true;
+ goto failure;
+ }
+
zone->refreshkeycount++;
kfetch->zone = zone;
zone->irefs++;
INSIST(zone->irefs != 0);
- kname = dns_fixedname_initname(&kfetch->name);
- dns_name_dup(name, zone->mctx, kname);
+
dns_rdataset_init(&kfetch->dnskeyset);
dns_rdataset_init(&kfetch->dnskeysigset);
dns_rdataset_init(&kfetch->keydataset);
dns_rdataset_t *qrdataset = NULL;
isc_result_t result;
- dns_message_create(zone->mctx, DNS_MESSAGE_INTENTRENDER, &message);
+ result = dns_message_create(zone->mctx, DNS_MESSAGE_INTENTRENDER, &message);
+ if (result != ISC_R_SUCCESS) {
+ return (result);
+ }
message->opcode = dns_opcode_query;
message->rdclass = zone->rdclass;
goto cleanup;
}
- dns_message_create(zone->mctx, DNS_MESSAGE_INTENTPARSE, &msg);
+ result = dns_message_create(zone->mctx, DNS_MESSAGE_INTENTPARSE, &msg);
+ if (result != ISC_R_SUCCESS) {
+ dns_zone_log(zone, ISC_LOG_INFO,
+ "refreshing stub: unable to create message: (%s)",
+ isc_result_totext(result));
+ goto cleanup;
+ }
+
result = dns_request_getresponse(revent->request, msg, 0);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_INFO,
zone = args->stub->zone;
request = isc_mem_get(zone->mctx, sizeof(*request));
+ if (request == NULL) {
+ return (ISC_R_NOMEMORY);
+ }
request->request = NULL;
request->args = args;
request->name = (dns_name_t)DNS_NAME_INITEMPTY;
request->ipv4 = ipv4;
- dns_name_dup(name, zone->mctx, &request->name);
+ result = dns_name_dup(name, zone->mctx, &request->name);
+ if (result != ISC_R_SUCCESS) {
+ zone_debuglog(zone, "stub_send_query", 1,
+ "dns_name_dup() failed: %s",
+ dns_result_totext(result));
+ goto fail;
+ }
result = create_query(zone, ipv4 ? dns_rdatatype_a : dns_rdatatype_aaaa,
&request->name, &message);
- INSIST(result == ISC_R_SUCCESS);
+ if (result != ISC_R_SUCCESS) {
+ zone_debuglog(zone, "stub_send_query", 1,
+ "create_query() failed: %s",
+ dns_result_totext(result));
+ goto fail;
+ }
if (!DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NOEDNS)) {
result = add_opt(message, args->udpsize, args->reqnsid, false);
stub_glue_response_cb, request, &request->request);
if (result != ISC_R_SUCCESS) {
- isc_refcount_decrement(&args->stub->pending_requests, &pending_requests);
+ isc_refcount_decrement(&args->stub->pending_requests,
+ &pending_requests);
INSIST(pending_requests > 0);
zone_debuglog(zone, "stub_send_query", 1,
"dns_request_createvia() failed: %s",
return (ISC_R_SUCCESS);
fail:
- dns_name_free(&request->name, zone->mctx);
+ if (dns_name_dynamic(&request->name)) {
+ dns_name_free(&request->name, zone->mctx);
+ }
isc_mem_put(zone->mctx, request, sizeof(*request));
if (message != NULL) {
dns_name_t *tmp_name;
tmp_name = isc_mem_get(cb_args->stub->mctx,
sizeof(*tmp_name));
+ if (tmp_name == NULL) {
+ result = ISC_R_NOMEMORY;
+ goto done;
+ }
dns_name_init(tmp_name, NULL);
- dns_name_dup(&ns.name, cb_args->stub->mctx, tmp_name);
+ result = dns_name_dup(&ns.name, cb_args->stub->mctx,
+ tmp_name);
+ if (result != ISC_R_SUCCESS) {
+ goto done;
+ }
ISC_LIST_APPEND(ns_list, tmp_name, link);
}
}