diff --git a/internal/plugin/installer/http_installer.go b/internal/plugin/installer/http_installer.go index b168f8646..e598bce02 100644 --- a/internal/plugin/installer/http_installer.go +++ b/internal/plugin/installer/http_installer.go @@ -256,11 +256,10 @@ func (g *TarGzExtractor) Extract(buffer *bytes.Buffer, targetDir string) error { if err != nil { return err } + defer outFile.Close() if _, err := io.Copy(outFile, tarReader); err != nil { - outFile.Close() return err } - outFile.Close() // We don't want to process these extension header files. case tar.TypeXGlobalHeader, tar.TypeXHeader: continue diff --git a/internal/plugin/installer/oci_installer.go b/internal/plugin/installer/oci_installer.go index 89dd44056..a96a94ee1 100644 --- a/internal/plugin/installer/oci_installer.go +++ b/internal/plugin/installer/oci_installer.go @@ -200,11 +200,10 @@ func extractTar(r io.Reader, targetDir string) error { if err != nil { return err } + defer outFile.Close() if _, err := io.Copy(outFile, tarReader); err != nil { - outFile.Close() return err } - outFile.Close() case tar.TypeXGlobalHeader, tar.TypeXHeader: // Skip these continue