mirror of
https://github.com/coredns/coredns.git
synced 2025-12-22 10:05:17 -05:00
Fix for misleading SOA parser warnings (#7774)
* Improve SOA error handling/reporting. Signed-off-by: Ross Golder <ross@golder.org> * Add tests for malformed SOA records Signed-off-by: Ross Golder <ross@golder.org> * Address review comments: assert exact parse errors in SOA tests and fix gofmt Signed-off-by: Ross Golder <ross@golder.org> --------- Signed-off-by: Ross Golder <ross@golder.org>
This commit is contained in:
@@ -57,3 +57,53 @@ www IN A 192.168.0.14
|
||||
mail IN A 192.168.0.15
|
||||
imap IN CNAME mail
|
||||
`
|
||||
|
||||
func TestParseMalformedSOA(t *testing.T) {
|
||||
_, err := Parse(strings.NewReader(dbMalformedSOA), "example.org.", "stdin", 0)
|
||||
if err == nil {
|
||||
t.Fatalf("Zone %q should have failed to load", "example.org.")
|
||||
}
|
||||
if !strings.Contains(err.Error(), "bad SOA zone parameter") {
|
||||
t.Fatalf("Expected parse error containing 'bad SOA zone parameter', got: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
const dbMalformedSOA = `
|
||||
$TTL 1M
|
||||
$ORIGIN example.org.
|
||||
|
||||
@ IN SOA ns1.example.com. admin.example.com. (
|
||||
abc ; Serial - invalid
|
||||
1200 ; Refresh
|
||||
144 ; Retry
|
||||
1814400 ; Expire
|
||||
2h ) ; Minimum
|
||||
@ IN NS ns1.example.com.
|
||||
|
||||
www IN A 192.168.0.14
|
||||
`
|
||||
|
||||
func TestParseSOASerialTooLarge(t *testing.T) {
|
||||
_, err := Parse(strings.NewReader(dbSOASerialTooLarge), "example.org.", "stdin", 0)
|
||||
if err == nil {
|
||||
t.Fatalf("Zone %q should have failed to load", "example.org.")
|
||||
}
|
||||
if !strings.Contains(err.Error(), "bad SOA zone parameter") {
|
||||
t.Fatalf("Expected parse error containing 'bad SOA zone parameter', got: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
const dbSOASerialTooLarge = `
|
||||
$TTL 1M
|
||||
$ORIGIN example.org.
|
||||
|
||||
@ IN SOA ns1.example.com. admin.example.com. (
|
||||
202512200817 ; Serial - exceeds 32-bit uint
|
||||
1200 ; Refresh
|
||||
144 ; Retry
|
||||
1814400 ; Expire
|
||||
2h ) ; Minimum
|
||||
@ IN NS ns1.example.com.
|
||||
|
||||
www IN A 192.168.0.14
|
||||
`
|
||||
|
||||
Reference in New Issue
Block a user