]> git.ipfire.org Git - thirdparty/bind9.git/commit
Tidy up cleanup path in check_signer()
authorOndřej Surý <ondrej@sury.org>
Fri, 10 Apr 2026 16:25:18 +0000 (18:25 +0200)
committerOndřej Surý <ondrej@sury.org>
Tue, 5 May 2026 06:24:46 +0000 (08:24 +0200)
commitdac6a57215dfc399fc3d8a51b3d0664e9dd19232
treeaa5c25f1f47354b0d16caa2f67e0e68e971d7191
parenta225d04fd211a0d5f6bf736db78ab59c85ab514c
Tidy up cleanup path in check_signer()

The cloned signature rdataset was not disassociated on the early
return taken when dns_dnssec_keyfromrdata() fails to parse the DNSKEY
public-key data.  In every current caller val->sigrdataset reaches
check_signer() rdatalist-backed, so dns_rdataset_clone() copies the
struct without taking any reference and dns_rdataset_disassociate()
is a no-op -- no memory is actually leaked today.  Hoist the key
parse out of the per-RRSIG loop and let the function fall through
to a single cleanup path, so the parse and the iteration cannot
diverge again.

Assisted-by: Claude:claude-opus-4-7
(cherry picked from commit 19f44a0aa376bace89d8ffaece546e1fc891a763)
lib/dns/validator.c