From e4f7f808626d23d15fc63f41499ef52e8efef116 Mon Sep 17 00:00:00 2001 From: Dmitry Maluka Date: Wed, 23 Dec 2020 21:21:01 +0100 Subject: [PATCH] Fix potential file leaks (#1958) --- internal/buffer/buffer.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/internal/buffer/buffer.go b/internal/buffer/buffer.go index 36b8a11e..d5ccfac1 100644 --- a/internal/buffer/buffer.go +++ b/internal/buffer/buffer.go @@ -216,17 +216,18 @@ func NewBufferFromFileAtLoc(path string, btype BufType, cursorLoc Loc) (*Buffer, readonly := os.IsPermission(err) f.Close() - file, err := os.Open(filename) fileInfo, serr := os.Stat(filename) if serr != nil && !os.IsNotExist(serr) { return nil, serr } - - if err == nil && fileInfo.IsDir() { + if serr == nil && fileInfo.IsDir() { return nil, errors.New("Error: " + filename + " is a directory and cannot be opened") } - defer file.Close() + file, err := os.Open(filename) + if err == nil { + defer file.Close() + } var buf *Buffer if os.IsNotExist(err) {