Expired secure headers linger in the node's header list until they
are reaped, so the secure-data check could match a header already
past its TTL, reject the new negative entry, and hand the expired
data back to the caller. Require the matching header to be active.
rdtype == dns_rdatatype_any && trust < dns_trust_secure)
{
DNS_SLABHEADER_FOREACH(header, &qpnode->headers) {
- if (header_trust(header) >= dns_trust_secure) {
+ if (ACTIVE(header, now) &&
+ header_trust(header) >= dns_trust_secure)
+ {
qpcache_hit(qpdb, header);
bindrdataset(qpdb, qpnode, header, now,
nlocktype, tlocktype,