From 4ee74672c61f9d9e2df19e3b66ec7a5e78c9fe4e Mon Sep 17 00:00:00 2001 From: Maurizio Porrato Date: Sun, 16 May 2021 21:21:07 +0100 Subject: [PATCH] Fix file descriptor leak --- syncstore/driver_fs.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/syncstore/driver_fs.go b/syncstore/driver_fs.go index b88ceb2..178a967 100644 --- a/syncstore/driver_fs.go +++ b/syncstore/driver_fs.go @@ -45,12 +45,17 @@ func (drv *FSStore) RawSave(s *Blob) error { if err != nil { return err } + tempname := f.Name() _, err = f.Write(body) + err2 := f.Close() if err != nil { _ = os.Remove(f.Name()) return err } - return os.Rename(f.Name(), filename) + if err2 != nil { + return err2 + } + return os.Rename(tempname, filename) } func (drv *FSStore) RawLoad(id string) (*Blob, error) {