plugin/file: fix file leak (#5687)

This commit is contained in:
Yong Tang 2022-10-11 14:49:52 -04:00 committed by GitHub
parent 26aae951e7
commit c6a543551e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -93,17 +93,26 @@ func fileParse(c *caddy.Controller) (Zones, error) {
openErr = err openErr = err
} }
for i := range origins { err = func() error {
z[origins[i]] = NewZone(origins[i], fileName) defer reader.Close()
if openErr == nil {
reader.Seek(0, 0) for i := range origins {
zone, err := Parse(reader, origins[i], fileName, 0) z[origins[i]] = NewZone(origins[i], fileName)
if err != nil { if openErr == nil {
return Zones{}, err reader.Seek(0, 0)
zone, err := Parse(reader, origins[i], fileName, 0)
if err != nil {
return err
}
z[origins[i]] = zone
} }
z[origins[i]] = zone names = append(names, origins[i])
} }
names = append(names, origins[i]) return nil
}()
if err != nil {
return Zones{}, err
} }
for c.NextBlock() { for c.NextBlock() {