- Fix that after malloc failure in find_tag_datas, the

local_alias is cleaned up. Thanks to Qifan Zhang, Palo
  Alto Networks, for the report.
This commit is contained in:
W.C.A. Wijngaards
2026-06-16 10:51:49 +02:00
parent aabf28aef5
commit 215e3920ef
3 changed files with 10 additions and 3 deletions
+3
View File
@@ -47,6 +47,9 @@
- Fix incorrect cleanup after an allocation failure for
a delegation point. Thanks to Qifan Zhang, Palo Alto
Networks, for the report.
- Fix that after malloc failure in find_tag_datas, the
local_alias is cleaned up. Thanks to Qifan Zhang, Palo
Alto Networks, for the report.
15 June 2026: Wouter
- Fix to add `max-transfer-size` and `max-transfer-time` that
+3 -1
View File
@@ -1502,8 +1502,10 @@ find_tag_datas(struct query_info* qinfo, struct config_strlist* list,
return 0; /* out of memory */
qinfo->local_alias->rrset =
regional_alloc_init(temp, r, sizeof(*r));
if(!qinfo->local_alias->rrset)
if(!qinfo->local_alias->rrset) {
qinfo->local_alias = NULL;
return 0; /* out of memory */
}
}
return result;
}
+4 -2
View File
@@ -1129,9 +1129,11 @@ extended_error_encode(sldns_buffer* buf, uint16_t rcode,
sldns_buffer_write(buf, &flags, sizeof(uint16_t));
sldns_buffer_write(buf, &flags, sizeof(uint16_t));
if(qinfo) {
const uint8_t* qname = qinfo->local_alias ?
const uint8_t* qname =
(qinfo->local_alias && qinfo->local_alias->rrset) ?
qinfo->local_alias->rrset->rk.dname : qinfo->qname;
size_t qname_len = qinfo->local_alias ?
size_t qname_len =
(qinfo->local_alias && qinfo->local_alias->rrset) ?
qinfo->local_alias->rrset->rk.dname_len :
qinfo->qname_len;
if(sldns_buffer_current(buf) == qname)