From c606c51c8b0c377314b8b3fffbdf66a72f2fe2cb Mon Sep 17 00:00:00 2001 From: Zachary Yedidia Date: Fri, 30 Mar 2018 15:59:26 -0400 Subject: [PATCH] Close fd properly in save Fixes #1057 --- cmd/micro/buffer.go | 3 ++- cmd/micro/messenger.go | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cmd/micro/buffer.go b/cmd/micro/buffer.go index d0dda6ef..6d0c641b 100644 --- a/cmd/micro/buffer.go +++ b/cmd/micro/buffer.go @@ -220,6 +220,7 @@ func NewBuffer(reader io.Reader, size int64, path string) *Buffer { // If either savecursor or saveundo is turned on, we need to load the serialized information // from ~/.config/micro/buffers file, err := os.Open(configDir + "/buffers/" + EscapePath(b.AbsPath)) + defer file.Close() if err == nil { var buffer SerializedBuffer decoder := gob.NewDecoder(file) @@ -242,7 +243,6 @@ func NewBuffer(reader io.Reader, size int64, path string) *Buffer { } } } - file.Close() } if !b.Settings["fastdirty"].(bool) { @@ -505,6 +505,7 @@ func (b *Buffer) SaveAs(filename string) error { } f, err := os.OpenFile(absFilename, os.O_WRONLY|os.O_CREATE, 0644) + defer f.Close() if err != nil { return err } diff --git a/cmd/micro/messenger.go b/cmd/micro/messenger.go index 29f96e38..b55557af 100644 --- a/cmd/micro/messenger.go +++ b/cmd/micro/messenger.go @@ -604,11 +604,11 @@ func (m *Messenger) Display() { func (m *Messenger) LoadHistory() { if GetGlobalOption("savehistory").(bool) { file, err := os.Open(configDir + "/buffers/history") + defer file.Close() var decodedMap map[string][]string if err == nil { decoder := gob.NewDecoder(file) err = decoder.Decode(&decodedMap) - file.Close() if err != nil { m.Error("Error loading history:", err) @@ -638,6 +638,7 @@ func (m *Messenger) SaveHistory() { } file, err := os.Create(configDir + "/buffers/history") + defer file.Close() if err == nil { encoder := gob.NewEncoder(file) @@ -646,7 +647,6 @@ func (m *Messenger) SaveHistory() { m.Error("Error saving history:", err) return } - file.Close() } } }