From 89637c12b296eb04f07150f206fabbe7332ac4db Mon Sep 17 00:00:00 2001 From: Seednode Date: Thu, 4 Jan 2024 12:43:26 -0600 Subject: [PATCH] Close zstd encoder before reading file info, to ensure accurate file size reporting for index file --- cmd/index.go | 8 ++++++++ cmd/root.go | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/cmd/index.go b/cmd/index.go index 7cbb60b..efb3e4c 100644 --- a/cmd/index.go +++ b/cmd/index.go @@ -106,11 +106,17 @@ func (index *fileIndex) Export(path string) error { index.mutex.RLock() err = enc.Encode(&index.list) if err != nil { + index.mutex.RUnlock() + return err } length := len(index.list) index.mutex.RUnlock() + // Close encoder prior to checking file size, + // to ensure the correct value is returned. + z.Close() + stats, err := file.Stat() if err != nil { return err @@ -154,6 +160,8 @@ func (index *fileIndex) Import(path string) error { index.mutex.Lock() err = dec.Decode(&index.list) if err != nil { + index.mutex.Unlock() + return err } length := len(index.list) diff --git a/cmd/root.go b/cmd/root.go index a1fa6d3..d5bec3f 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -14,7 +14,7 @@ import ( const ( AllowedCharacters string = `^[A-z0-9.\-_]+$` - ReleaseVersion string = "3.7.0" + ReleaseVersion string = "3.7.1" ) var (