diff options
Diffstat (limited to 'src/dnssec.c')
-rw-r--r-- | src/dnssec.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/dnssec.c b/src/dnssec.c index 90818a6..84ad48f 100644 --- a/src/dnssec.c +++ b/src/dnssec.c @@ -724,7 +724,8 @@ static int validate_rrset(time_t now, struct dns_header *header, size_t plen, in /* namebuff used for workspace above, restore to leave unchanged on exit */ p = (unsigned char*)(rrset[0]); - extract_name(header, plen, &p, name, 1, 0); + if (!extract_name(header, plen, &p, name, 1, 0)) + return STAT_BOGUS; if (key) { @@ -1017,7 +1018,9 @@ int dnssec_validate_ds(time_t now, struct dns_header *header, size_t plen, char } p = (unsigned char *)(header+1); - extract_name(header, plen, &p, name, 1, 4); + if (!extract_name(header, plen, &p, name, 1, 4)) + return STAT_BOGUS; + p += 4; /* qtype, qclass */ /* If the key needed to validate the DS is on the same domain as the DS, we'll |