summaryrefslogtreecommitdiffstats
path: root/debian/patches/0008-lib-dnssec-kr_rrset_validate_with_key-deduplicate-cl.patch
blob: 85fff28c0b969654318a0e2749ae96c73d9287ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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;
 }