From 66db37814d164e5d8dd5be5cff68f759362c3959 Mon Sep 17 00:00:00 2001 From: Kunal Kushwaha Date: Mon, 7 Dec 2015 14:02:36 +0900 Subject: [PATCH] Bugfix#2504 Rename of temp file fails. Tempfile was not closed, so rename opertion was failing. Minor code refactor is done, to make function more readable. Signed-off-by: Kunal Kushwaha --- libmachine/persist/filestore.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/libmachine/persist/filestore.go b/libmachine/persist/filestore.go index 62263dfe8a..3978a9ce49 100644 --- a/libmachine/persist/filestore.go +++ b/libmachine/persist/filestore.go @@ -41,18 +41,19 @@ func (s Filestore) saveToFile(data []byte, file string) error { } defer os.Remove(tmpfi.Name()) - err = ioutil.WriteFile(tmpfi.Name(), data, 0600) - if err != nil { + if err = ioutil.WriteFile(tmpfi.Name(), data, 0600); err != nil { return err } - err = os.Remove(file) - if err != nil { + if err = tmpfi.Close(); err != nil { return err } - err = os.Rename(tmpfi.Name(), file) - if err != nil { + if err = os.Remove(file); err != nil { + return err + } + + if err = os.Rename(tmpfi.Name(), file); err != nil { return err } return nil