diff --git a/internal/plugin/installer/oci_installer.go b/internal/plugin/installer/oci_installer.go index 383ddb914..e00e39ad9 100644 --- a/internal/plugin/installer/oci_installer.go +++ b/internal/plugin/installer/oci_installer.go @@ -238,12 +238,15 @@ func extractTar(r io.Reader, targetDir string) error { return err } - outFile, err := os.OpenFile(path, os.O_CREATE|os.O_RDWR, os.FileMode(header.Mode)) - if err != nil { + if err := func() error { + outFile, err := os.OpenFile(path, os.O_CREATE|os.O_RDWR, os.FileMode(header.Mode)) + if err != nil { + return err + } + defer outFile.Close() + _, err = io.Copy(outFile, tarReader) return err - } - defer outFile.Close() - if _, err := io.Copy(outFile, tarReader); err != nil { + }(); err != nil { return err } case tar.TypeXGlobalHeader, tar.TypeXHeader: