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;
}
|