diff --git a/fuzz_test.go b/fuzz_test.go index 70e27d1a..25586973 100644 --- a/fuzz_test.go +++ b/fuzz_test.go @@ -9,6 +9,8 @@ func TestFuzzString(t *testing.T) { " TYPE4 TYPE6a789a3bc0045c8a5fb42c7d1bd998f5444 IN 9579b47d46817afbd17273e6", " TYPE45 3 3 4147994 TYPE\\(\\)\\)\\(\\)\\(\\(\\)\\(\\)\\)\\)\\(\\)\\(\\)\\(\\(\\R 948\"\")\\(\\)\\)\\)\\(\\ ", "$GENERATE 0-3 ${441189,5039418474430,o}", + "$INCLUDE 00 TYPE00000000000n ", + "$INCLUDE PE4 TYPE061463623/727071511 \\(\\)\\$GENERATE 6-462/0", } for i, tc := range testcases { rr, err := NewRR(tc) diff --git a/zscan.go b/zscan.go index 1f1be96f..40ba35c3 100644 --- a/zscan.go +++ b/zscan.go @@ -281,7 +281,7 @@ func parseZone(r io.Reader, origin, f string, t chan *Token, include int) { case zBlank: l := <-c if l.value == zString { - if _, ok := IsDomainName(l.token); !ok { + if _, ok := IsDomainName(l.token); !ok || l.length == 0 || l.err { t <- &Token{Error: &ParseError{f, "bad origin name", l}} return }