mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28:25 +00:00
Handle SERVFAIL replies when looking for proven-nonexistence of DS.
This commit is contained in:
@@ -1347,13 +1347,20 @@ static int do_check_sign(time_t now, struct dns_header *header, size_t plen, cha
|
|||||||
{
|
{
|
||||||
char *name_start;
|
char *name_start;
|
||||||
unsigned char *p;
|
unsigned char *p;
|
||||||
int status = dnssec_validate_ds(now, header, plen, name, keyname, class);
|
int status;
|
||||||
|
|
||||||
if (status != STAT_INSECURE)
|
/* In this case only, a SERVFAIL reply allows us to continue up the tree, looking for a
|
||||||
{
|
suitable NSEC reply to DS queries. */
|
||||||
if (status == STAT_NO_DS)
|
if (RCODE(header) != SERVFAIL)
|
||||||
status = STAT_INSECURE;
|
{
|
||||||
return status;
|
status = dnssec_validate_ds(now, header, plen, name, keyname, class);
|
||||||
|
|
||||||
|
if (status != STAT_INSECURE)
|
||||||
|
{
|
||||||
|
if (status == STAT_NO_DS)
|
||||||
|
status = STAT_INSECURE;
|
||||||
|
return status;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
p = (unsigned char *)(header+1);
|
p = (unsigned char *)(header+1);
|
||||||
|
|||||||
Reference in New Issue
Block a user