diff --git a/pkg/appstore/appstore_replicate_sinf.go b/pkg/appstore/appstore_replicate_sinf.go index 83debc0c..c9967e2b 100644 --- a/pkg/appstore/appstore_replicate_sinf.go +++ b/pkg/appstore/appstore_replicate_sinf.go @@ -135,21 +135,29 @@ func (t *appstore) replicateSinfFromInfo(info packageInfo, zip *zip.Writer, sinf func (t *appstore) replicateZip(src *zip.ReadCloser, dst *zip.Writer) error { for _, file := range src.File { - srcFile, err := file.OpenRaw() - if err != nil { - return fmt.Errorf("failed to open raw file: %w", err) - } + err := func() error { + srcFile, err := file.Open() + if err != nil { + return fmt.Errorf("failed to open file: %w", err) + } + defer srcFile.Close() - header := file.FileHeader - dstFile, err := dst.CreateRaw(&header) + header := file.FileHeader + dstFile, err := dst.CreateHeader(&header) - if err != nil { - return fmt.Errorf("failed to create raw file: %w", err) - } + if err != nil { + return fmt.Errorf("failed to create file: %w", err) + } + + _, err = io.Copy(dstFile, srcFile) + if err != nil { + return fmt.Errorf("failed to copy file: %w", err) + } - _, err = io.Copy(dstFile, srcFile) + return nil + }() if err != nil { - return fmt.Errorf("failed to copy file: %w", err) + return err } }