summaryrefslogtreecommitdiffstats
path: root/debian/patches/0008-lib-dnssec-kr_rrset_validate_with_key-deduplicate-cl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0008-lib-dnssec-kr_rrset_validate_with_key-deduplicate-cl.patch')
-rw-r--r--debian/patches/0008-lib-dnssec-kr_rrset_validate_with_key-deduplicate-cl.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/debian/patches/0008-lib-dnssec-kr_rrset_validate_with_key-deduplicate-cl.patch b/debian/patches/0008-lib-dnssec-kr_rrset_validate_with_key-deduplicate-cl.patch
new file mode 100644
index 0000000..85fff28
--- /dev/null
+++ b/debian/patches/0008-lib-dnssec-kr_rrset_validate_with_key-deduplicate-cl.patch
@@ -0,0 +1,43 @@
+From: =?utf-8?b?VmxhZGltw61yIMSMdW7DoXQ=?= <vladimir.cunat@nic.cz>
+Date: Sat, 30 Dec 2023 09:20:56 +0100
+Subject: lib/dnssec kr_rrset_validate_with_key(): deduplicate cleanup
+
+---
+ lib/dnssec.c | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/lib/dnssec.c b/lib/dnssec.c
+index d6ae3cc..c536357 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;
+ }
+