diff --git a/pkg/tfvars/libvirt/cache.go b/pkg/tfvars/libvirt/cache.go index 24228ad381a..5fb2e7e1710 100644 --- a/pkg/tfvars/libvirt/cache.go +++ b/pkg/tfvars/libvirt/cache.go @@ -151,12 +151,23 @@ func cacheImage(reader io.Reader, imagePath string) (err error) { if err != nil { return err } - defer file.Close() + closed := false + defer func() { + if !closed { + file.Close() + } + }() _, err = io.Copy(file, reader) if err != nil { return err } + err = file.Close() + if err != nil { + return err + } + closed = true + return os.Rename(tempPath, imagePath) }