Browse code

Don't loose precision when parsing image size on 32 bit machines. Presumably fixes #8979.

Signed-off-by: Recursive Madman <recursive.madman@gmx.de>

Recursive Madman authored on 2014/11/11 02:14:12
Showing 1 changed files
... ...
@@ -64,7 +64,10 @@ func LoadImage(root string) (*Image, error) {
64 64
 		// because a layer size of 0 (zero) is valid
65 65
 		img.Size = -1
66 66
 	} else {
67
-		size, err := strconv.Atoi(string(buf))
67
+		// Using Atoi here instead would temporarily convert the size to a machine
68
+		// dependent integer type, which causes images larger than 2^31 bytes to
69
+		// display negative sizes on 32-bit machines:
70
+		size, err := strconv.ParseInt(string(buf), 10, 64)
68 71
 		if err != nil {
69 72
 			return nil, err
70 73
 		}