From f10b0f75e02041db64176760a3be9639408ad923 Mon Sep 17 00:00:00 2001 From: shin- Date: Tue, 30 Apr 2013 14:05:33 -0700 Subject: [PATCH] Fix checksum computing --- image.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/image.go b/image.go index dcad130d3b..2142716d4f 100644 --- a/image.go +++ b/image.go @@ -283,22 +283,26 @@ func (img *Image) Checksum() (string, error) { if err != nil { return "", err } - layerData, err := Tar(layer, Xz) - if err != nil { - return "", err - } - h := sha256.New() - if _, err := io.Copy(h, layerData); err != nil { - return "", err - } - jsonData, err := ioutil.ReadFile(jsonPath(root)) if err != nil { return "", err } + + layerData, err := Tar(layer, Xz) + if err != nil { + return "", err + } + + h := sha256.New() if _, err := io.Copy(h, bytes.NewBuffer(jsonData)); err != nil { return "", err } + if _, err := io.Copy(h, strings.NewReader("\n")); err != nil { + return "", err + } + if _, err := io.Copy(h, layerData); err != nil { + return "", err + } hash := "sha256:"+hex.EncodeToString(h.Sum(nil)) if *checksums == nil {