Merge "In LocalFile normalize integer fields to integers"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 7 Sep 2015 07:00:32 +0000 (07:00 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 7 Sep 2015 07:00:32 +0000 (07:00 +0000)
includes/filerepo/file/LocalFile.php

index 4070553..d2c37e6 100644 (file)
@@ -502,9 +502,17 @@ class LocalFile extends File {
                        $decoded['mime'] = $decoded['major_mime'] . '/' . $decoded['minor_mime'];
                }
 
-               # Trim zero padding from char/binary field
+               // Trim zero padding from char/binary field
                $decoded['sha1'] = rtrim( $decoded['sha1'], "\0" );
 
+               // Normalize some fields to integer type, per their database definition.
+               // Use unary + so that overflows will be upgraded to double instead of
+               // being trucated as with intval(). This is important to allow >2GB
+               // files on 32-bit systems.
+               foreach ( array( 'size', 'width', 'height', 'bits' ) as $field ) {
+                       $decoded[$field] = +$decoded[$field];
+               }
+
                return $decoded;
        }