Skip to content

Commit 9e58e82

Browse files
committed
internal/durable: delete tmp file if rename fails
1 parent 2ab93ca commit 9e58e82

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

internal/durable/path.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,14 @@ func WriteFile(name string, data []byte, perm os.FileMode) (err error) {
3737
if err != nil {
3838
return &os.PathError{Op: "durablewrite", Path: name, Err: err}
3939
}
40-
defer func() {
40+
defer func(tmpname string) {
4141
if err == nil {
42-
err = os.Rename(f.Name(), name)
43-
} else {
44-
os.Remove(f.Name())
42+
err = os.Rename(tmpname, name)
4543
}
46-
}()
44+
if err != nil {
45+
os.Remove(tmpname)
46+
}
47+
}(f.Name())
4748
if err := f.Chmod(perm); err != nil {
4849
f.Close()
4950
return err

0 commit comments

Comments
 (0)