From: Mark Andrews Date: Tue, 21 Dec 2021 01:44:17 +0000 (+1100) Subject: disassociate rdatasets when cleaning up X-Git-Tag: v9.19.4~29^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b38a5d895fcfe5b07659bbfe80eae4775c9a1294;p=thirdparty%2Fbind9.git disassociate rdatasets when cleaning up free_namelist could be passed names with associated rdatasets when handling errors. These need to be disassociated before calling dns_message_puttemprdataset. --- diff --git a/lib/dns/tkey.c b/lib/dns/tkey.c index edb60eafec5..69484be5645 100644 --- a/lib/dns/tkey.c +++ b/lib/dns/tkey.c @@ -227,6 +227,9 @@ free_namelist(dns_message_t *msg, dns_namelist_t *namelist) { while (!ISC_LIST_EMPTY(name->list)) { set = ISC_LIST_HEAD(name->list); ISC_LIST_UNLINK(name->list, set, link); + if (dns_rdataset_isassociated(set)) { + dns_rdataset_disassociate(set); + } dns_message_puttemprdataset(msg, &set); } dns_message_puttempname(msg, &name);