Fix zone parser error handling (#6680)

Signed-off-by: Nathan Currier <nathan.currier@broadcom.com>
This commit is contained in:
Nathan Currier
2024-07-01 10:27:50 -05:00
committed by GitHub
parent 2e9986c622
commit 626333a1b3
4 changed files with 37 additions and 13 deletions

View File

@@ -136,10 +136,6 @@ func Parse(f io.Reader, origin, fileName string, serial int64) (*Zone, error) {
z := NewZone(origin, fileName)
seenSOA := false
for rr, ok := zp.Next(); ok; rr, ok = zp.Next() {
if err := zp.Err(); err != nil {
return nil, err
}
if !seenSOA {
if s, ok := rr.(*dns.SOA); ok {
seenSOA = true
@@ -163,5 +159,9 @@ func Parse(f io.Reader, origin, fileName string, serial int64) (*Zone, error) {
return nil, fmt.Errorf("failed to parse file %q for origin %s with error %v", fileName, origin, zp.Err())
}
if err := zp.Err(); err != nil {
return nil, err
}
return z, nil
}