overflow. Thanks to Qifan Zhang, Palo Alto Networks, for the report.
/* snip off front label */
lablen = *qname;
+ if(lablen == 0)
+ break;
qname += lablen + 1;
qnamelen -= lablen + 1;
}
opt = edns_opt_list_find(qstate->edns_opts_back_in,
LDNS_EDNS_REPORT_CHANNEL);
if(!opt) return;
- agent_domain_len = opt->opt_len;
agent_domain = opt->opt_data;
- if(dname_valid(agent_domain, agent_domain_len) < 3) {
+ agent_domain_len = dname_valid(agent_domain, opt->opt_len);
+ if(agent_domain_len < 3) {
/* The agent domain needs to be a valid dname that is not the
* root; from RFC9567. */
return;