infinite loop on failure in dns_dnssec_findzonekeys
This commit is contained in:
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Id: dnssec.c,v 1.5 1999/09/10 17:18:30 halley Exp $
|
* $Id: dnssec.c,v 1.6 1999/09/23 20:56:59 bwelling Exp $
|
||||||
* Principal Author: Brian Wellington
|
* Principal Author: Brian Wellington
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -560,16 +560,15 @@ dns_dnssec_findzonekeys(dns_db_t *db, dns_dbversion_t *ver, dns_dbnode_t *node,
|
|||||||
dns_rdataset_current(&rdataset, &rdata);
|
dns_rdataset_current(&rdataset, &rdata);
|
||||||
result = dns_dnssec_keyfromrdata(name, &rdata, mctx, &pubkey);
|
result = dns_dnssec_keyfromrdata(name, &rdata, mctx, &pubkey);
|
||||||
check_result(result, "dns_dnssec_keyfromrdata()");
|
check_result(result, "dns_dnssec_keyfromrdata()");
|
||||||
if (!is_zone_key(pubkey)) {
|
if (!is_zone_key(pubkey))
|
||||||
dst_key_free(pubkey);
|
goto next;
|
||||||
continue;
|
|
||||||
}
|
|
||||||
result = dst_key_fromfile(dst_key_name(pubkey),
|
result = dst_key_fromfile(dst_key_name(pubkey),
|
||||||
dst_key_id(pubkey),
|
dst_key_id(pubkey),
|
||||||
dst_key_alg(pubkey),
|
dst_key_alg(pubkey),
|
||||||
DST_TYPE_PRIVATE,
|
DST_TYPE_PRIVATE,
|
||||||
mctx, &keys[count++]);
|
mctx, &keys[count++]);
|
||||||
check_result(result, "dst_key_fromfile()");
|
check_result(result, "dst_key_fromfile()");
|
||||||
|
next:
|
||||||
dst_key_free(pubkey);
|
dst_key_free(pubkey);
|
||||||
pubkey = NULL;
|
pubkey = NULL;
|
||||||
result = dns_rdataset_next(&rdataset);
|
result = dns_rdataset_next(&rdataset);
|
||||||
|
|||||||
Reference in New Issue
Block a user