diff --git a/internal/selfupdate/download.go b/internal/selfupdate/download.go index 271383d86..00721af80 100644 --- a/internal/selfupdate/download.go +++ b/internal/selfupdate/download.go @@ -80,9 +80,12 @@ func extractToFile(buf []byte, filename, target string, printf func(string, ...i return err } if err = newFile.Sync(); err != nil { + _ = newFile.Close() + _ = os.Remove(newFile.Name()) return err } if err = newFile.Close(); err != nil { + _ = os.Remove(newFile.Name()) return err } diff --git a/internal/selfupdate/github.go b/internal/selfupdate/github.go index 2ac1ef07f..8cb825b7b 100644 --- a/internal/selfupdate/github.go +++ b/internal/selfupdate/github.go @@ -87,6 +87,7 @@ func GitHubLatestRelease(ctx context.Context, owner, repo string) (Release, erro var msg githubError jerr := json.NewDecoder(res.Body).Decode(&msg) if jerr == nil { + _ = res.Body.Close() return Release{}, fmt.Errorf("unexpected status %v (%v) returned, message:\n %v", res.StatusCode, res.Status, msg.Message) } } @@ -137,6 +138,7 @@ func getGithubData(ctx context.Context, url string) ([]byte, error) { } if res.StatusCode != http.StatusOK { + _ = res.Body.Close() return nil, fmt.Errorf("unexpected status %v (%v) returned", res.StatusCode, res.Status) }