Skip to content

Commit 77fc79e

Browse files
committed
fix(updater): fix defer bug closing archive file before extraction
defer ignoreErr(f.Close()) evaluates f.Close() eagerly as an argument, closing the file immediately instead of at function exit. Changed to defer closeBestEffort(f) which correctly defers the close.
1 parent a9151b0 commit 77fc79e

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

shared/updater/updater.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -927,21 +927,21 @@ func extractZipBinary(archivePath, binaryName, destPath string) error {
927927
if err != nil {
928928
return err
929929
}
930-
defer ignoreErr(r.Close())
930+
defer closeBestEffort(r)
931931

932932
for _, f := range r.File {
933933
if filepath.Base(f.Name) == binaryName || filepath.Base(f.Name) == binaryName+".exe" {
934934
rc, err := f.Open()
935935
if err != nil {
936936
return err
937937
}
938-
defer ignoreErr(rc.Close())
938+
defer closeBestEffort(rc)
939939

940940
out, err := os.OpenFile(destPath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0755)
941941
if err != nil {
942942
return err
943943
}
944-
defer ignoreErr(out.Close())
944+
defer closeBestEffort(out)
945945

946946
_, err = io.Copy(out, rc)
947947
return err
@@ -955,13 +955,13 @@ func extractTarGzBinary(archivePath, binaryName, destPath string) error {
955955
if err != nil {
956956
return err
957957
}
958-
defer ignoreErr(f.Close())
958+
defer closeBestEffort(f)
959959

960960
gzr, err := gzip.NewReader(f)
961961
if err != nil {
962962
return err
963963
}
964-
defer ignoreErr(gzr.Close())
964+
defer closeBestEffort(gzr)
965965

966966
tr := tar.NewReader(gzr)
967967
for {
@@ -978,7 +978,7 @@ func extractTarGzBinary(archivePath, binaryName, destPath string) error {
978978
if err != nil {
979979
return err
980980
}
981-
defer ignoreErr(out.Close())
981+
defer closeBestEffort(out)
982982

983983
_, err = io.Copy(out, tr)
984984
return err

0 commit comments

Comments
 (0)