Fix potential file leaks (#1958)

This commit is contained in:
Dmitry Maluka
2020-12-23 21:21:01 +01:00
committed by GitHub
parent 2fbeb40bf0
commit e4f7f80862

View File

@@ -216,17 +216,18 @@ func NewBufferFromFileAtLoc(path string, btype BufType, cursorLoc Loc) (*Buffer,
readonly := os.IsPermission(err) readonly := os.IsPermission(err)
f.Close() f.Close()
file, err := os.Open(filename)
fileInfo, serr := os.Stat(filename) fileInfo, serr := os.Stat(filename)
if serr != nil && !os.IsNotExist(serr) { if serr != nil && !os.IsNotExist(serr) {
return nil, serr return nil, serr
} }
if serr == nil && fileInfo.IsDir() {
if err == nil && fileInfo.IsDir() {
return nil, errors.New("Error: " + filename + " is a directory and cannot be opened") 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 var buf *Buffer
if os.IsNotExist(err) { if os.IsNotExist(err) {