added sanity check of journal RR size

This commit is contained in:
Andreas Gustafsson 1999-08-20 12:31:27 +00:00
parent 095f11eab4
commit 271fa93020

View file

@ -1884,9 +1884,17 @@ read_one_rr(dns_journal_t *j) {
}
/* Read an RR. */
result = journal_read_rrhdr(j, &rrhdr);
if (rrhdr.size == 0) {
/*
* Perform a sanity check on the journal RR size.
* The smallest possible RR has a 1-byte owner name
* and a 10-byte header. The largest possible
* RR has 65535 bytes of data, a header, and a maximum-
* size owner name, well below 70 k total.
*/
if (rrhdr.size < 1+10 || rrhdr.size > 70000) {
UNEXPECTED_ERROR(__FILE__, __LINE__,
"journal corrupt: empty RR");
"journal corrupt: impossible RR size "
"(%d bytes)", rrhdr.size);
FAIL(DNS_R_UNEXPECTED);
}