Read trailing data from tar reader
Not reading all the data from the tar reader causes the
layer digest mismatch which causes failures during unpack
of certain images for lcow. This changes fixes that.
@@ -21,6 +21,7 @@ package lcow
import (
"context"
"io"
+ "io/ioutil"
"os"
"path"
"time"
@@ -163,6 +164,11 @@ func (s windowsLcowDiff) Apply(ctx context.Context, desc ocispec.Descriptor, mou
}
outFile.Close()
+ // Read any trailing data
+ if _, err := io.Copy(ioutil.Discard, rc); err != nil {
+ return emptyDesc, err
+ }
+
err = security.GrantVmGroupAccess(layerPath)
if err != nil {
return emptyDesc, errors.Wrapf(err, "failed GrantVmGroupAccess on layer vhd: %v", layerPath)
