From 5cd53195fddd9a2843ad57c6e1ac11bec1ac37f0 Mon Sep 17 00:00:00 2001 From: Recursive Madman Date: Mon, 10 Nov 2014 18:14:12 +0100 Subject: [PATCH] Don't loose precision when parsing image size on 32 bit machines. Presumably fixes #8979. Signed-off-by: Recursive Madman --- image/image.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/image/image.go b/image/image.go index dfa8e9a6e3..f1ce48935a 100644 --- a/image/image.go +++ b/image/image.go @@ -64,7 +64,10 @@ func LoadImage(root string) (*Image, error) { // because a layer size of 0 (zero) is valid img.Size = -1 } else { - size, err := strconv.Atoi(string(buf)) + // Using Atoi here instead would temporarily convert the size to a machine + // dependent integer type, which causes images larger than 2^31 bytes to + // display negative sizes on 32-bit machines: + size, err := strconv.ParseInt(string(buf), 10, 64) if err != nil { return nil, err }