From 89b4fc584563ad194f1c428b3ba2c86a533b3af2 Mon Sep 17 00:00:00 2001 From: Md Mushfiqur Rahim <20mahin2020@gmail.com> Date: Fri, 22 May 2026 06:07:15 +0000 Subject: [PATCH 1/2] fix: check file Close() error in update asset download --- main.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 5d54f53b..e1ee5ef3 100644 --- a/main.go +++ b/main.go @@ -3760,10 +3760,13 @@ func runUpdateCLI() (err error) { return fmt.Errorf("could not create temp file: %w", err) } _, err = io.Copy(outFile, respAsset.Body) - outFile.Close() if err != nil { + outFile.Close() return fmt.Errorf("could not write asset to disk: %w", err) } + if err := outFile.Close(); err != nil { + return fmt.Errorf("could not finalize asset file: %w", err) + } // Determine the expected binary name based on the OS. binaryName := "matcha" From bbc18427c5eac9f2c39d60919ea50b2f05c1d91d Mon Sep 17 00:00:00 2001 From: FromSi Date: Sun, 24 May 2026 22:41:13 +0500 Subject: [PATCH 2/2] fix(update): check extracted file close --- main.go | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index e1ee5ef3..a96571d1 100644 --- a/main.go +++ b/main.go @@ -3761,7 +3761,7 @@ func runUpdateCLI() (err error) { } _, err = io.Copy(outFile, respAsset.Body) if err != nil { - outFile.Close() + _ = outFile.Close() return fmt.Errorf("could not write asset to disk: %w", err) } if err := outFile.Close(); err != nil { @@ -3803,10 +3803,12 @@ func runUpdateCLI() (err error) { return fmt.Errorf("could not create binary file: %w", err) } if _, err := io.Copy(out, tr); err != nil { - out.Close() + _ = out.Close() return fmt.Errorf("could not extract binary: %w", err) } - out.Close() + if err := out.Close(); err != nil { + return fmt.Errorf("could not finalize extracted binary: %w", err) + } if err := os.Chmod(binPath, 0755); err != nil { return fmt.Errorf("could not make binary executable: %w", err) } @@ -3833,12 +3835,17 @@ func runUpdateCLI() (err error) { return fmt.Errorf("could not create binary file: %w", err) } if _, err := io.Copy(out, rc); err != nil { - out.Close() - rc.Close() + _ = out.Close() + _ = rc.Close() return fmt.Errorf("could not extract binary: %w", err) } - out.Close() - rc.Close() + if err := out.Close(); err != nil { + _ = rc.Close() + return fmt.Errorf("could not finalize extracted binary: %w", err) + } + if err := rc.Close(); err != nil { + return fmt.Errorf("could not close zip entry: %w", err) + } if err := os.Chmod(binPath, 0755); err != nil { return fmt.Errorf("could not make binary executable: %w", err) }