Skip to content

Commit 247db47

Browse files
Adding missing file closes
1 parent 7492195 commit 247db47

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

internal/buffer/buffer.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,7 @@ func (b *Buffer) ReOpen() error {
537537
if err != nil {
538538
return err
539539
}
540+
defer file.Close()
540541

541542
enc, err := htmlindex.Get(b.Settings["encoding"].(string))
542543
if err != nil {

internal/buffer/save.go

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -342,17 +342,6 @@ func (b *Buffer) saveToFile(filename string, withSudo bool, autoSave bool) error
342342
// This means that the file is not overwritten directly but by writing to the
343343
// backup file first.
344344
func (b *Buffer) safeWrite(path string, withSudo bool, newFile bool) (int, error) {
345-
file, err := openFile(path, withSudo)
346-
if err != nil {
347-
return 0, err
348-
}
349-
350-
defer func() {
351-
if newFile && err != nil {
352-
os.Remove(path)
353-
}
354-
}()
355-
356345
backupDir := b.backupDir()
357346
if _, err := os.Stat(backupDir); err != nil {
358347
if !errors.Is(err, fs.ErrNotExist) {
@@ -364,15 +353,27 @@ func (b *Buffer) safeWrite(path string, withSudo bool, newFile bool) (int, error
364353
}
365354

366355
backupName := util.DetermineEscapePath(backupDir, path)
367-
_, err = b.overwriteFile(backupName)
356+
_, err := b.overwriteFile(backupName)
368357
if err != nil {
369358
os.Remove(backupName)
370359
return 0, err
371360
}
372361

362+
file, err := openFile(path, withSudo)
363+
if err != nil {
364+
return 0, err
365+
}
366+
367+
defer func() {
368+
if newFile && err != nil {
369+
os.Remove(path)
370+
}
371+
}()
372+
373373
b.forceKeepBackup = true
374374
size, err := file.Write(b)
375375
if err != nil {
376+
file.Close()
376377
err = util.OverwriteError{err, backupName}
377378
return size, err
378379
}

0 commit comments

Comments
 (0)