struct reply_info* partial_rep = NULL;
struct query_info* lookup_qinfo = &qinfo;
struct query_info qinfo_tmp; /* placeholder for lookup_qinfo */
+ uint8_t* alias_orig_qname = NULL; /* original qname for logs, if
+ a local_alias is used to change the qname. */
struct respip_client_info* cinfo = NULL, cinfo_tmp;
struct timeval wait_time;
struct check_request_result check_result = {0,0};
/* If we've found a local alias, replace the qname with the alias
* target before resolving it. */
if(qinfo.local_alias) {
+ if(qinfo.local_alias->rrset &&
+ qinfo.local_alias->rrset->rk.dname)
+ /* Store the original qname, used for logs, since
+ * local_alias can be removed by region_free_all. */
+ alias_orig_qname = qinfo.local_alias->rrset->rk.dname;
if(!local_alias_shallow_copy_qname(qinfo.local_alias, &qinfo.qname,
&qinfo.qname_len)) {
regional_free_all(worker->scratchpad);
{
struct timeval tv;
memset(&tv, 0, sizeof(tv));
- if(qinfo.local_alias && qinfo.local_alias->rrset &&
- qinfo.local_alias->rrset->rk.dname) {
+ if(alias_orig_qname) {
/* log original qname, before the local alias was
* used to resolve that CNAME to something else */
- qinfo.qname = qinfo.local_alias->rrset->rk.dname;
+ qinfo.qname = alias_orig_qname;
log_reply_info(NO_VERBOSE, &qinfo,
&repinfo->client_addr, repinfo->client_addrlen,
tv, 1, c->buffer,
- Fix that fast_reload does not terminate the server for
errors in config, for key files. Thanks to Qifan Zhang,
Palo Alto Networks, for the report.
+ - Fix log of an aliased qname, to not use freed region
+ memory. Thanks to Qifan Zhang, Palo Alto Networks, for
+ the report.
12 June 2026: Wouter
- Fix that for auth-zone and rpz zones the allow-notify