Fixed missing f.Close() in writeConfig()

Defering can cause trouble because we're writing to the file outside the function
where the defering is registered, calling f.Sync() ensures that bytes are flushed
to disk even is Close() is called too soon.
This commit is contained in:
bpizzi
2019-07-13 12:28:02 +02:00
committed by Márk Sági-Kazár
parent e325492b82
commit e02bc9eca5
+7 -1
View File
@@ -1378,7 +1378,13 @@ func (v *Viper) writeConfig(filename string, force bool) error {
if err != nil {
return err
}
return v.marshalWriter(f, configType)
defer f.Close()
if err := v.marshalWriter(f, configType); err != nil {
return err
}
return f.Sync()
}
// Unmarshal a Reader into a map.