From: Vladimír Čunát Date: Sat, 30 Dec 2023 08:20:56 +0000 (+0100) Subject: lib/dnssec kr_rrset_validate_with_key(): deduplicate cleanup X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=13efab9df893fe111c9ad7652b0deac68ea987bb;p=thirdparty%2Fknot-resolver.git lib/dnssec kr_rrset_validate_with_key(): deduplicate cleanup (cherry picked from commit f9ba52e6f54bc1db122870df50cb364cb977436e) --- diff --git a/lib/dnssec.c b/lib/dnssec.c index d6ae3cc67..c5363572e 100644 --- a/lib/dnssec.c +++ b/lib/dnssec.c @@ -356,9 +356,8 @@ static int kr_rrset_validate_with_key(kr_rrset_validation_ctx_t *vctx, int retv = validate_rrsig_rr(&val_flgs, covered_labels, rdata_j, key_alg, keytag, vctx); if (retv == kr_error(EAGAIN)) { - kr_dnssec_key_free(&created_key); vctx->result = retv; - return retv; + goto finish; } else if (retv != 0) { continue; } @@ -392,15 +391,15 @@ static int kr_rrset_validate_with_key(kr_rrset_validation_ctx_t *vctx, trim_ttl(covered, rdata_j, vctx); - kr_dnssec_key_free(&created_key); - vctx->result = kr_ok(); kr_rank_set(&vctx->rrs->at[i]->rank, KR_RANK_SECURE); /* upgrade from bogus */ - return vctx->result; + vctx->result = kr_ok(); + goto finish; } } /* No applicable key found, cannot be validated. */ - kr_dnssec_key_free(&created_key); vctx->result = kr_error(ENOENT); +finish: + kr_dnssec_key_free(&created_key); return vctx->result; }