return msg;
} else if(nsec && val_nsec_proves_name_error(nsec, qinfo->qname)) {
if(!(msg = dns_msg_create(qinfo->qname, qinfo->qname_len,
- qinfo->qtype, qinfo->qclass, region, 2)))
+ qinfo->qtype, qinfo->qclass, region, 3)))
return NULL;
if(!(ce = nsec_closest_encloser(qinfo->qname, nsec)))
return NULL;
wc_ce[0] = 1;
wc_ce[1] = (uint8_t)'*';
memmove(wc_ce+2, ce, ce_len);
- ce_len += 2;
wc_qinfo.qname = wc_ce;
- wc_qinfo.qname_len = ce_len;
+ wc_qinfo.qname_len = ce_len += 2;
wc_qinfo.qtype = qinfo->qtype;
} else {
/* Get wildcard NSEC for possible non existence
* proof */
- if(!(wcrr = neg_find_nsec(neg, wc_ce, ce_len,
- qinfo->qclass, rrset_cache, now,
- region)))
+ if(!(wcrr = neg_find_nsec(neg, wc_qinfo.qname,
+ wc_qinfo.qname_len, qinfo->qclass,
+ rrset_cache, now, region)))
return NULL;
nodata_wc = NULL;