From 3dc4a760e58a824672d2c4168525f5402fe2f28f Mon Sep 17 00:00:00 2001 From: Miladin Devedzic Date: Wed, 4 Feb 2026 13:36:13 +0000 Subject: [PATCH 1/2] Add tmp file closure --- chunker/writer.go | 1 + chunker/writer_test.go | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/chunker/writer.go b/chunker/writer.go index e1e5ca6..940066f 100644 --- a/chunker/writer.go +++ b/chunker/writer.go @@ -51,6 +51,7 @@ func (w *Writer) Write(p []byte) (int, error) { } func (w *Writer) Cleanup() error { + w.tmp.Close() if err := os.Remove(w.tmp.Name()); err != nil { return fmt.Errorf("failed to remove temporary file %s with error: %s", w.tmp.Name(), err) diff --git a/chunker/writer_test.go b/chunker/writer_test.go index 35bfca7..8f3688c 100644 --- a/chunker/writer_test.go +++ b/chunker/writer_test.go @@ -88,6 +88,13 @@ func TestWrite(t *testing.T) { if uint64(len(tc.want)) != w.Size() { t.Errorf("Write(%q) = %d, want: %d", string(tc.inChunks), w.Size(), len(tc.want)) } + + if err := w.Cleanup(); err != nil { + t.Errorf("Cleanup() returned an unexpected error: %v", err) + } + if _, err := os.Stat(w.File().Name()); !os.IsNotExist(err) { + t.Errorf("Cleanup() did not remove the temporary file: %s", w.File().Name()) + } }) } } From e6670978c098a1a391b01b273856de92215f2f06 Mon Sep 17 00:00:00 2001 From: Miladin Devedzic Date: Wed, 4 Feb 2026 14:49:19 +0000 Subject: [PATCH 2/2] handle error --- chunker/writer.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/chunker/writer.go b/chunker/writer.go index 940066f..31b278b 100644 --- a/chunker/writer.go +++ b/chunker/writer.go @@ -51,10 +51,14 @@ func (w *Writer) Write(p []byte) (int, error) { } func (w *Writer) Cleanup() error { - w.tmp.Close() - if err := os.Remove(w.tmp.Name()); err != nil { + closeErr := w.tmp.Close() + removeErr := os.Remove(w.tmp.Name()) + if closeErr != nil { + return fmt.Errorf("failed to close temporary file %s with error: %s", w.tmp.Name(), closeErr) + } + if removeErr != nil { return fmt.Errorf("failed to remove temporary file %s with error: %s", - w.tmp.Name(), err) + w.tmp.Name(), removeErr) } return nil }