From fbd2214a511df1dc8efdd6641072cd07c23e6bb5 Mon Sep 17 00:00:00 2001 From: Alex Goodman Date: Mon, 3 Dec 2018 11:16:19 -0500 Subject: [PATCH] read entire json file on image parsing --- image/image.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/image/image.go b/image/image.go index 2ceee51..cd80ffb 100644 --- a/image/image.go +++ b/image/image.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "io" + "io/ioutil" "strings" "github.com/sirupsen/logrus" @@ -188,8 +189,6 @@ func InitializeData(imageID string) ([]*Layer, []*filetree.FileTree, float64, fi layerProgress := fmt.Sprintf("[layer: %2d]", currentLayer) name := header.Name - var n int - // some layer tars can be relative layer symlinks to other layer tars if header.Typeflag == tar.TypeSymlink || header.Typeflag == tar.TypeReg { @@ -204,9 +203,8 @@ func InitializeData(imageID string) ([]*Layer, []*filetree.FileTree, float64, fi layerReader := tar.NewReader(tarReader) processLayerTar(layerMap, name, layerReader, layerProgress) } else if strings.HasSuffix(name, ".json") { - var fileBuffer = make([]byte, header.Size) - n, err = tarReader.Read(fileBuffer) - if err != nil && err != io.EOF || int64(n) != header.Size { + fileBuffer, err := ioutil.ReadAll(tarReader) + if err != nil { logrus.Panic(err) } jsonFiles[name] = fileBuffer