diff options
Diffstat (limited to 'bin/dig/dighost.c')
| -rw-r--r-- | bin/dig/dighost.c | 234 |
1 files changed, 110 insertions, 124 deletions
diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index d6fea27bef5c..45dac2f5a112 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -85,6 +85,7 @@ #include <isc/print.h> #include <isc/random.h> #include <isc/result.h> +#include <isc/safe.h> #include <isc/serial.h> #include <isc/string.h> #include <isc/task.h> @@ -193,7 +194,7 @@ dig_lookup_t *current_lookup = NULL; #ifdef DIG_SIGCHASE -isc_result_t get_trusted_key(isc_mem_t *mctx); +isc_result_t get_trusted_key(void); dns_rdataset_t * sigchase_scanname(dns_rdatatype_t type, dns_rdatatype_t covers, isc_boolean_t *lookedup, @@ -211,32 +212,26 @@ isc_result_t advanced_rrsearch(dns_rdataset_t **rdataset, isc_result_t sigchase_verify_sig_key(dns_name_t *name, dns_rdataset_t *rdataset, dst_key_t* dnsseckey, - dns_rdataset_t *sigrdataset, - isc_mem_t *mctx); + dns_rdataset_t *sigrdataset); isc_result_t sigchase_verify_sig(dns_name_t *name, dns_rdataset_t *rdataset, dns_rdataset_t *keyrdataset, - dns_rdataset_t *sigrdataset, - isc_mem_t *mctx); + dns_rdataset_t *sigrdataset); isc_result_t sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset, - dns_rdataset_t *dsrdataset, - isc_mem_t *mctx); + dns_rdataset_t *dsrdataset); void sigchase(dns_message_t *msg); void print_rdata(dns_rdata_t *rdata, isc_mem_t *mctx); -void print_rdataset(dns_name_t *name, - dns_rdataset_t *rdataset, isc_mem_t *mctx); -void dup_name(dns_name_t *source, dns_name_t* target, - isc_mem_t *mctx); -void free_name(dns_name_t *name, isc_mem_t *mctx); +void print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset); +void dup_name(dns_name_t *source, dns_name_t* target); +void free_name(dns_name_t *name); void dump_database(void); void dump_database_section(dns_message_t *msg, int section); dns_rdataset_t * search_type(dns_name_t *name, dns_rdatatype_t type, dns_rdatatype_t covers); isc_result_t contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset, - dns_rdataset_t *sigrdataset, - isc_mem_t *mctx); + dns_rdataset_t *sigrdataset); void print_type(dns_rdatatype_t type); isc_result_t prove_nx_domain(dns_message_t * msg, dns_name_t * name, @@ -258,7 +253,7 @@ isc_result_t prove_nx(dns_message_t * msg, dns_name_t * name, dns_rdataset_t ** sigrdataset); static void nameFromString(const char *str, dns_name_t *p_ret); int inf_name(dns_name_t * name1, dns_name_t * name2); -isc_result_t removetmpkey(isc_mem_t *mctx, const char *file); +isc_result_t removetmpkey(const char *file); void clean_trustedkey(void); isc_result_t insert_trustedkey(void *arg, dns_name_t *name, dns_rdataset_t *rdataset); @@ -1011,7 +1006,6 @@ parse_bits(char *arg, const char *desc, isc_uint32_t max) { return (tmp); } - /* * Parse HMAC algorithm specification */ @@ -1627,7 +1621,7 @@ start_lookup(void) { #if DIG_SIGCHASE_TD if (current_lookup->do_topdown && !current_lookup->rdtype_sigchaseset) { - dst_key_t *trustedkey = NULL; + dst_key_t *dstkey = NULL; isc_buffer_t *b = NULL; isc_region_t r; isc_result_t result; @@ -1635,7 +1629,7 @@ start_lookup(void) { dns_name_t *key_name; int i; - result = get_trusted_key(mctx); + result = get_trusted_key(); if (result != ISC_R_SUCCESS) { printf("\n;; No trusted key, " "+sigchase option is disabled\n"); @@ -1650,22 +1644,22 @@ start_lookup(void) { if (dns_name_issubdomain(&query_name, key_name) == ISC_TRUE) - trustedkey = tk_list.key[i]; + dstkey = tk_list.key[i]; /* * Verify temp is really the lowest * WARNING */ } - if (trustedkey == NULL) { + if (dstkey == NULL) { printf("\n;; The queried zone: "); dns_name_print(&query_name, stdout); printf(" isn't a subdomain of any Trusted Keys" ": +sigchase option is disable\n"); current_lookup->sigchase = ISC_FALSE; - free_name(&query_name, mctx); + free_name(&query_name); goto novalidation; } - free_name(&query_name, mctx); + free_name(&query_name); current_lookup->rdtype_sigchase = current_lookup->rdtype; @@ -1690,7 +1684,7 @@ start_lookup(void) { result = isc_buffer_allocate(mctx, &b, BUFSIZE); check_result(result, "isc_buffer_allocate"); - result = dns_name_totext(dst_key_name(trustedkey), + result = dns_name_totext(dst_key_name(dstkey), ISC_FALSE, b); check_result(result, "dns_name_totext"); isc_buffer_usedregion(b, &r); @@ -2010,9 +2004,6 @@ insert_soa(dig_lookup_t *lookup) { dns_rdatalist_init(rdatalist); rdatalist->type = dns_rdatatype_soa; rdatalist->rdclass = lookup->rdclass; - rdatalist->covers = 0; - rdatalist->ttl = 0; - ISC_LIST_INIT(rdatalist->rdata); ISC_LIST_APPEND(rdatalist->rdata, rdata, link); dns_rdataset_init(rdataset); @@ -3682,10 +3673,14 @@ isc_result_t get_address(char *host, in_port_t myport, isc_sockaddr_t *sockaddr) { int count; isc_result_t result; + isc_boolean_t is_running; - isc_app_block(); + is_running = isc_app_isrunning(); + if (is_running) + isc_app_block(); result = bind9_getaddresses(host, myport, sockaddr, 1, &count); - isc_app_unblock(); + if (is_running) + isc_app_unblock(); if (result != ISC_R_SUCCESS) return (result); @@ -3922,16 +3917,16 @@ destroy_libs(void) { isc_mem_free(mctx, ptr); } if (dns_name_dynamic(&chase_name)) - free_name(&chase_name, mctx); + free_name(&chase_name); #if DIG_SIGCHASE_TD if (dns_name_dynamic(&chase_current_name)) - free_name(&chase_current_name, mctx); + free_name(&chase_current_name); if (dns_name_dynamic(&chase_authority_name)) - free_name(&chase_authority_name, mctx); + free_name(&chase_authority_name); #endif #if DIG_SIGCHASE_BU if (dns_name_dynamic(&chase_signame)) - free_name(&chase_signame, mctx); + free_name(&chase_signame); #endif #endif @@ -4081,7 +4076,7 @@ dump_database_section(dns_message_t *msg, int section) rdataset = ISC_LIST_NEXT(rdataset, link)) { dns_name_print(msg_name, stdout); printf("\n"); - print_rdataset(msg_name, rdataset, mctx); + print_rdataset(msg_name, rdataset); printf("end\n"); } msg_name = NULL; @@ -4261,7 +4256,7 @@ isc_result_t insert_trustedkey(void *arg, dns_name_t *name, dns_rdataset_t *rdataset) { isc_result_t result; - dst_key_t *key; + dst_key_t *dstkey; UNUSED(arg); @@ -4279,11 +4274,11 @@ insert_trustedkey(void *arg, dns_name_t *name, dns_rdataset_t *rdataset) isc_buffer_add(&b, rdata.length); if (tk_list.nb_tk >= MAX_TRUSTED_KEY) return (ISC_R_SUCCESS); - key = NULL; - result = dst_key_fromdns(name, rdata.rdclass, &b, mctx, &key); + dstkey = NULL; + result = dst_key_fromdns(name, rdata.rdclass, &b, mctx, &dstkey); if (result != ISC_R_SUCCESS) continue; - tk_list.key[tk_list.nb_tk++] = key; + tk_list.key[tk_list.nb_tk++] = dstkey; } return (ISC_R_SUCCESS); } @@ -4308,7 +4303,7 @@ char alphnum[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; isc_result_t -removetmpkey(isc_mem_t *mctx, const char *file) +removetmpkey(const char *file) { char *tempnamekey = NULL; int tempnamekeylen; @@ -4332,8 +4327,7 @@ removetmpkey(isc_mem_t *mctx, const char *file) } isc_result_t -get_trusted_key(isc_mem_t *mctx) -{ +get_trusted_key(void) { isc_result_t result; const char *filename = NULL; dns_rdatacallbacks_t callbacks; @@ -4384,7 +4378,7 @@ nameFromString(const char *str, dns_name_t *p_ret) { check_result(result, "nameFromString"); if (dns_name_dynamic(p_ret)) - free_name(p_ret, mctx); + free_name(p_ret); result = dns_name_dup(dns_fixedname_name(&fixedname), mctx, p_ret); check_result(result, "nameFromString"); @@ -4433,7 +4427,6 @@ prepare_lookup(dns_name_t *name) #define __FOLLOW_GLUE__ #ifdef __FOLLOW_GLUE__ isc_buffer_t *b = NULL; - isc_result_t result; isc_region_t r; dns_rdataset_t *rdataset = NULL; isc_boolean_t true = ISC_TRUE; @@ -4528,7 +4521,7 @@ prepare_lookup(dns_name_t *name) printf(" for zone: %s", lookup->textname); printf(" with nameservers:"); printf("\n"); - print_rdataset(name, chase_nsrdataset, mctx); + print_rdataset(name, chase_nsrdataset); return (ISC_R_SUCCESS); } @@ -4611,14 +4604,14 @@ initialization(dns_name_t *name) INSIST(chase_nsrdataset != NULL); prepare_lookup(name); - dup_name(name, &chase_current_name, mctx); + dup_name(name, &chase_current_name); return (ISC_R_SUCCESS); } #endif void -print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset, isc_mem_t *mctx) +print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset) { isc_buffer_t *b = NULL; isc_result_t result; @@ -4640,17 +4633,17 @@ print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset, isc_mem_t *mctx) void -dup_name(dns_name_t *source, dns_name_t *target, isc_mem_t *mctx) { +dup_name(dns_name_t *source, dns_name_t *target) { isc_result_t result; if (dns_name_dynamic(target)) - free_name(target, mctx); + free_name(target); result = dns_name_dup(source, mctx, target); check_result(result, "dns_name_dup"); } void -free_name(dns_name_t *name, isc_mem_t *mctx) { +free_name(dns_name_t *name) { dns_name_free(name, mctx); dns_name_init(name, NULL); } @@ -4667,8 +4660,7 @@ free_name(dns_name_t *name, isc_mem_t *mctx) { */ isc_result_t contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset, - dns_rdataset_t *sigrdataset, - isc_mem_t *mctx) + dns_rdataset_t *sigrdataset) { dns_rdataset_t myrdataset; dst_key_t *dnsseckey = NULL; @@ -4704,8 +4696,7 @@ contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset, dst_key_id(dnsseckey)); result = sigchase_verify_sig_key(name, rdataset, dnsseckey, - sigrdataset, - mctx); + sigrdataset); if (result == ISC_R_SUCCESS) goto cleanup; } @@ -4713,19 +4704,20 @@ contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset, dst_key_free(&dnsseckey); } while (dns_rdataset_next(&myrdataset) == ISC_R_SUCCESS); + result = ISC_R_NOTFOUND; + cleanup: if (dnsseckey != NULL) dst_key_free(&dnsseckey); dns_rdataset_disassociate(&myrdataset); - return (ISC_R_NOTFOUND); + return (result); } isc_result_t sigchase_verify_sig(dns_name_t *name, dns_rdataset_t *rdataset, dns_rdataset_t *keyrdataset, - dns_rdataset_t *sigrdataset, - isc_mem_t *mctx) + dns_rdataset_t *sigrdataset) { dns_rdataset_t mykeyrdataset; dst_key_t *dnsseckey = NULL; @@ -4748,7 +4740,7 @@ sigchase_verify_sig(dns_name_t *name, dns_rdataset_t *rdataset, check_result(result, "dns_dnssec_keyfromrdata"); result = sigchase_verify_sig_key(name, rdataset, dnsseckey, - sigrdataset, mctx); + sigrdataset); if (result == ISC_R_SUCCESS) goto cleanup; dst_key_free(&dnsseckey); @@ -4766,8 +4758,7 @@ sigchase_verify_sig(dns_name_t *name, dns_rdataset_t *rdataset, isc_result_t sigchase_verify_sig_key(dns_name_t *name, dns_rdataset_t *rdataset, - dst_key_t *dnsseckey, dns_rdataset_t *sigrdataset, - isc_mem_t *mctx) + dst_key_t *dnsseckey, dns_rdataset_t *sigrdataset) { dns_rdata_sig_t siginfo; dns_rdataset_t myrdataset; @@ -4826,7 +4817,7 @@ sigchase_verify_sig_key(dns_name_t *name, dns_rdataset_t *rdataset, isc_result_t sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset, - dns_rdataset_t *dsrdataset, isc_mem_t *mctx) + dns_rdataset_t *dsrdataset) { dns_rdata_ds_t dsinfo; dns_rdataset_t mydsrdataset; @@ -4893,8 +4884,7 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset, result = sigchase_verify_sig_key(name, keyrdataset, dnsseckey, - chase_sigkeyrdataset, - mctx); + chase_sigkeyrdataset); if (result == ISC_R_SUCCESS) goto cleanup; } else { @@ -5000,7 +4990,7 @@ sigchase_td(dns_message_t *msg) dns_rdatatype_ns, dns_rdatatype_any, DNS_SECTION_AUTHORITY); - dup_name(name, &chase_authority_name, mctx); + dup_name(name, &chase_authority_name); if (chase_nsrdataset != NULL) { have_delegation_ns = ISC_TRUE; printf("no response but there is a delegation" @@ -5018,7 +5008,7 @@ sigchase_td(dns_message_t *msg) } else { printf(";; NO ANSWERS: %s\n", isc_result_totext(result)); - free_name(&chase_name, mctx); + free_name(&chase_name); clean_trustedkey(); return; } @@ -5050,7 +5040,7 @@ sigchase_td(dns_message_t *msg) return; INSIST(chase_keyrdataset != NULL); printf("\n;; DNSKEYset:\n"); - print_rdataset(&chase_current_name , chase_keyrdataset, mctx); + print_rdataset(&chase_current_name , chase_keyrdataset); result = advanced_rrsearch(&chase_sigkeyrdataset, @@ -5067,22 +5057,20 @@ sigchase_td(dns_message_t *msg) return; INSIST(chase_sigkeyrdataset != NULL); printf("\n;; RRSIG of the DNSKEYset:\n"); - print_rdataset(&chase_current_name , chase_sigkeyrdataset, mctx); + print_rdataset(&chase_current_name , chase_sigkeyrdataset); if (!chase_dslookedup && !chase_nslookedup) { if (!delegation_follow) { result = contains_trusted_key(&chase_current_name, chase_keyrdataset, - chase_sigkeyrdataset, - mctx); + chase_sigkeyrdataset); } else { INSIST(chase_dsrdataset != NULL); INSIST(chase_sigdsrdataset != NULL); result = sigchase_verify_ds(&chase_current_name, chase_keyrdataset, - chase_dsrdataset, - mctx); + chase_dsrdataset); } if (result != ISC_R_SUCCESS) { @@ -5141,8 +5129,8 @@ sigchase_td(dns_message_t *msg) result = child_of_zone(&chase_name, &chase_current_name, &tmp_name); if (dns_name_dynamic(&chase_authority_name)) - free_name(&chase_authority_name, mctx); - dup_name(&tmp_name, &chase_authority_name, mctx); + free_name(&chase_authority_name); + dup_name(&tmp_name, &chase_authority_name); printf(";; and we try to continue chain of trust" " validation of the zone: "); dns_name_print(&chase_authority_name, stdout); @@ -5187,7 +5175,7 @@ sigchase_td(dns_message_t *msg) return; INSIST(chase_dsrdataset != NULL); printf("\n;; DSset:\n"); - print_rdataset(&chase_authority_name , chase_dsrdataset, mctx); + print_rdataset(&chase_authority_name , chase_dsrdataset); result = advanced_rrsearch(&chase_sigdsrdataset, &chase_authority_name, @@ -5200,14 +5188,13 @@ sigchase_td(dns_message_t *msg) goto cleanandgo; } printf("\n;; RRSIGset of DSset\n"); - print_rdataset(&chase_authority_name, - chase_sigdsrdataset, mctx); + print_rdataset(&chase_authority_name, chase_sigdsrdataset); INSIST(chase_sigdsrdataset != NULL); result = sigchase_verify_sig(&chase_authority_name, chase_dsrdataset, chase_keyrdataset, - chase_sigdsrdataset, mctx); + chase_sigdsrdataset); if (result != ISC_R_SUCCESS) { printf("\n;; Impossible to verify the DSset:" " FAILED\n\n"); @@ -5223,8 +5210,8 @@ sigchase_td(dns_message_t *msg) have_delegation_ns = ISC_FALSE; delegation_follow = ISC_TRUE; error_message = NULL; - dup_name(&chase_authority_name, &chase_current_name, mctx); - free_name(&chase_authority_name, mctx); + dup_name(&chase_authority_name, &chase_current_name); + free_name(&chase_authority_name); return; } @@ -5249,14 +5236,14 @@ sigchase_td(dns_message_t *msg) } ret = sigchase_verify_sig(&rdata_name, rdataset, chase_keyrdataset, - sigrdataset, mctx); + sigrdataset); if (ret != ISC_R_SUCCESS) { - free_name(&rdata_name, mctx); + free_name(&rdata_name); printf("\n;; Impossible to verify the NSEC RR to prove" " the non-existence : FAILED\n\n"); goto cleanandgo; } - free_name(&rdata_name, mctx); + free_name(&rdata_name); if (result != ISC_R_SUCCESS) { printf("\n;; Impossible to verify the non-existence:" " FAILED\n\n"); @@ -5271,9 +5258,9 @@ sigchase_td(dns_message_t *msg) cleanandgo: printf(";; cleanandgo \n"); if (dns_name_dynamic(&chase_current_name)) - free_name(&chase_current_name, mctx); + free_name(&chase_current_name); if (dns_name_dynamic(&chase_authority_name)) - free_name(&chase_authority_name, mctx); + free_name(&chase_authority_name); clean_trustedkey(); return; @@ -5289,22 +5276,22 @@ sigchase_td(dns_message_t *msg) } result = sigchase_verify_sig(&chase_name, chase_rdataset, chase_keyrdataset, - chase_sigrdataset, mctx); + chase_sigrdataset); if (result != ISC_R_SUCCESS) { printf("\n;; Impossible to verify the RRset : FAILED\n\n"); /* printf("RRset:\n"); - print_rdataset(&chase_name , chase_rdataset, mctx); + print_rdataset(&chase_name , chase_rdataset); printf("DNSKEYset:\n"); - print_rdataset(&chase_name , chase_keyrdataset, mctx); + print_rdataset(&chase_name , chase_keyrdataset); printf("RRSIG of RRset:\n"); - print_rdataset(&chase_name , chase_sigrdataset, mctx); + print_rdataset(&chase_name , chase_sigrdataset); printf("\n"); */ goto cleanandgo; } else { printf("\n;; The Answer:\n"); - print_rdataset(&chase_name , chase_rdataset, mctx); + print_rdataset(&chase_name , chase_rdataset); printf("\n;; FINISH : we have validate the DNSSEC chain" " of trust: SUCCESS\n\n"); @@ -5345,9 +5332,9 @@ getneededrr(dns_message_t *msg) printf("\n;; No Answers: Validation FAILED\n\n"); return (ISC_R_NOTFOUND); } - dup_name(name, &chase_name, mctx); + dup_name(name, &chase_name); printf(";; RRset to chase:\n"); - print_rdataset(&chase_name, chase_rdataset, mctx); + print_rdataset(&chase_name, chase_rdataset); } INSIST(chase_rdataset != NULL); @@ -5361,14 +5348,14 @@ getneededrr(dns_message_t *msg) printf("\n;; RRSIG is missing for continue validation:" " FAILED\n\n"); if (dns_name_dynamic(&chase_name)) - free_name(&chase_name, mctx); + free_name(&chase_name); return (ISC_R_NOTFOUND); } if (result == ISC_R_NOTFOUND) { return (ISC_R_NOTFOUND); } printf("\n;; RRSIG of the RRset to chase:\n"); - print_rdataset(&chase_name, chase_sigrdataset, mctx); + print_rdataset(&chase_name, chase_sigrdataset); } INSIST(chase_sigrdataset != NULL); @@ -5379,7 +5366,7 @@ getneededrr(dns_message_t *msg) dns_rdataset_current(chase_sigrdataset, &sigrdata); result = dns_rdata_tostruct(&sigrdata, &siginfo, NULL); check_result(result, "sigrdata tostruct siginfo"); - dup_name(&siginfo.signer, &chase_signame, mctx); + dup_name(&siginfo.signer, &chase_signame); dns_rdata_freestruct(&siginfo); dns_rdata_reset(&sigrdata); @@ -5393,17 +5380,17 @@ getneededrr(dns_message_t *msg) if (result == ISC_R_FAILURE) { printf("\n;; DNSKEY is missing to continue validation:" " FAILED\n\n"); - free_name(&chase_signame, mctx); + free_name(&chase_signame); if (dns_name_dynamic(&chase_name)) - free_name(&chase_name, mctx); + free_name(&chase_name); return (ISC_R_NOTFOUND); } if (result == ISC_R_NOTFOUND) { - free_name(&chase_signame, mctx); + free_name(&chase_signame); return (ISC_R_NOTFOUND); } printf("\n;; DNSKEYset that signs the RRset to chase:\n"); - print_rdataset(&chase_signame, chase_keyrdataset, mctx); + print_rdataset(&chase_signame, chase_keyrdataset); } INSIST(chase_keyrdataset != NULL); @@ -5416,18 +5403,18 @@ getneededrr(dns_message_t *msg) if (result == ISC_R_FAILURE) { printf("\n;; RRSIG for DNSKEY is missing to continue" " validation : FAILED\n\n"); - free_name(&chase_signame, mctx); + free_name(&chase_signame); if (dns_name_dynamic(&chase_name)) - free_name(&chase_name, mctx); + free_name(&chase_name); return (ISC_R_NOTFOUND); } if (result == ISC_R_NOTFOUND) { - free_name(&chase_signame, mctx); + free_name(&chase_signame); return (ISC_R_NOTFOUND); } printf("\n;; RRSIG of the DNSKEYset that signs the " "RRset to chase:\n"); - print_rdataset(&chase_signame, chase_sigkeyrdataset, mctx); + print_rdataset(&chase_signame, chase_sigkeyrdataset); } INSIST(chase_sigkeyrdataset != NULL); @@ -5442,12 +5429,12 @@ getneededrr(dns_message_t *msg) printf("\n"); } if (result == ISC_R_NOTFOUND) { - free_name(&chase_signame, mctx); + free_name(&chase_signame); return (ISC_R_NOTFOUND); } if (chase_dsrdataset != NULL) { printf("\n;; DSset of the DNSKEYset\n"); - print_rdataset(&chase_signame, chase_dsrdataset, mctx); + print_rdataset(&chase_signame, chase_dsrdataset); } } @@ -5470,8 +5457,7 @@ getneededrr(dns_message_t *msg) chase_dsrdataset = NULL; } else { printf("\n;; RRSIG of the DSset of the DNSKEYset\n"); - print_rdataset(&chase_signame, chase_sigdsrdataset, - mctx); + print_rdataset(&chase_signame, chase_sigdsrdataset); } } return (1); @@ -5486,7 +5472,7 @@ sigchase_bu(dns_message_t *msg) int ret; if (tk_list.nb_tk == 0) { - result = get_trusted_key(mctx); + result = get_trusted_key(); if (result != ISC_R_SUCCESS) { printf("No trusted keys present\n"); return; @@ -5513,7 +5499,7 @@ sigchase_bu(dns_message_t *msg) result = prove_nx(msg, &query_name, current_lookup->rdclass, current_lookup->rdtype, &rdata_name, &rdataset, &sigrdataset); - free_name(&query_name, mctx); + free_name(&query_name); if (rdataset == NULL || sigrdataset == NULL || dns_name_countlabels(&rdata_name) == 0) { printf("\n;; Impossible to verify the Non-existence," @@ -5532,8 +5518,8 @@ sigchase_bu(dns_message_t *msg) printf(";; An NSEC prove the non-existence of a answers," " Now we want validate this NSEC\n"); - dup_name(&rdata_name, &chase_name, mctx); - free_name(&rdata_name, mctx); + dup_name(&rdata_name, &chase_name); + free_name(&rdata_name); chase_rdataset = rdataset; chase_sigrdataset = sigrdataset; chase_keyrdataset = NULL; @@ -5554,10 +5540,10 @@ sigchase_bu(dns_message_t *msg) result = sigchase_verify_sig(&chase_name, chase_rdataset, chase_keyrdataset, - chase_sigrdataset, mctx); + chase_sigrdataset); if (result != ISC_R_SUCCESS) { - free_name(&chase_name, mctx); - free_name(&chase_signame, mctx); + free_name(&chase_name); + free_name(&chase_signame); printf(";; No DNSKEY is valid to check the RRSIG" " of the RRset: FAILED\n"); clean_trustedkey(); @@ -5566,10 +5552,10 @@ sigchase_bu(dns_message_t *msg) printf(";; OK We found DNSKEY (or more) to validate the RRset\n"); result = contains_trusted_key(&chase_signame, chase_keyrdataset, - chase_sigkeyrdataset, mctx); + chase_sigkeyrdataset); if (result == ISC_R_SUCCESS) { - free_name(&chase_name, mctx); - free_name(&chase_signame, mctx); + free_name(&chase_name); + free_name(&chase_signame); printf("\n;; Ok this DNSKEY is a Trusted Key," " DNSSEC validation is ok: SUCCESS\n\n"); clean_trustedkey(); @@ -5579,8 +5565,8 @@ sigchase_bu(dns_message_t *msg) printf(";; Now, we are going to validate this DNSKEY by the DS\n"); if (chase_dsrdataset == NULL) { - free_name(&chase_name, mctx); - free_name(&chase_signame, mctx); + free_name(&chase_name); + free_name(&chase_signame); printf(";; the DNSKEY isn't trusted-key and there isn't" " DS to validate the DNSKEY: FAILED\n"); clean_trustedkey(); @@ -5588,10 +5574,10 @@ sigchase_bu(dns_message_t *msg) } result = sigchase_verify_ds(&chase_signame, chase_keyrdataset, - chase_dsrdataset, mctx); + chase_dsrdataset); if (result != ISC_R_SUCCESS) { - free_name(&chase_signame, mctx); - free_name(&chase_name, mctx); + free_name(&chase_signame); + free_name(&chase_name); printf(";; ERROR no DS validates a DNSKEY in the" " DNSKEY RRset: FAILED\n"); clean_trustedkey(); @@ -5602,8 +5588,8 @@ sigchase_bu(dns_message_t *msg) " the RRset\n"); INSIST(chase_sigdsrdataset != NULL); - dup_name(&chase_signame, &chase_name, mctx); - free_name(&chase_signame, mctx); + dup_name(&chase_signame, &chase_name); + free_name(&chase_signame); chase_rdataset = chase_dsrdataset; chase_sigrdataset = chase_sigdsrdataset; chase_keyrdataset = NULL; @@ -5716,7 +5702,7 @@ prove_nx_domain(dns_message_t *msg, printf("There is a NSEC for this zone in the" " AUTHORITY section:\n"); - print_rdataset(nsecname, nsecset, mctx); + print_rdataset(nsecname, nsecset); for (result = dns_rdataset_first(nsecset); result == ISC_R_SUCCESS; @@ -5745,7 +5731,7 @@ prove_nx_domain(dns_message_t *msg, dns_rdata_freestruct(&nsecstruct); *rdataset = nsecset; *sigrdataset = signsecset; - dup_name(nsecname, rdata_name, mctx); + dup_name(nsecname, rdata_name); return (ISC_R_SUCCESS); } @@ -5798,7 +5784,7 @@ prove_nx_type(dns_message_t *msg, dns_name_t *name, dns_rdataset_t *nsecset, printf("There isn't RRSIG NSEC for the zone \n"); return (ISC_R_FAILURE); } - dup_name(name, rdata_name, mctx); + dup_name(name, rdata_name); *rdataset = nsecset; *sigrdataset = signsecset; |
