aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorOleg Pudeyev <oleg@bsdpower.com>2011-02-02 09:59:06 -0500
committerAndreas Fischer <bantu@phpbb.com>2011-02-04 00:02:38 +0100
commitd13efa41c5ec0968f9689ac17582106e0673cf8b (patch)
tree32f4c050de9429af0e352ff34814efd9c426f361 /phpBB
parent15992ceff99cd147d30b81fa237424160779f916 (diff)
downloadforums-d13efa41c5ec0968f9689ac17582106e0673cf8b.tar
forums-d13efa41c5ec0968f9689ac17582106e0673cf8b.tar.gz
forums-d13efa41c5ec0968f9689ac17582106e0673cf8b.tar.bz2
forums-d13efa41c5ec0968f9689ac17582106e0673cf8b.tar.xz
forums-d13efa41c5ec0968f9689ac17582106e0673cf8b.zip
[ticket/10020] Fix 32-bit php braindamage around INT_MIN.
On 32-bit php, -2147483648, despite fitting in the int type, is for some reason made into a floating-point value. Use an explicit cast to make it an integer. PHPBB3-10020
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/adm/index.php7
1 files changed, 5 insertions, 2 deletions
diff --git a/phpBB/adm/index.php b/phpBB/adm/index.php
index b6ccb6b241..dd8f4c279d 100644
--- a/phpBB/adm/index.php
+++ b/phpBB/adm/index.php
@@ -573,8 +573,11 @@ function validate_range($value_ary, &$error)
'BOOL' => array('php_type' => 'int', 'min' => 0, 'max' => 1),
'USINT' => array('php_type' => 'int', 'min' => 0, 'max' => 65535),
'UINT' => array('php_type' => 'int', 'min' => 0, 'max' => (int) 0x7fffffff),
- // Do not use (int) 0x80000000 - it evaluates to different values on 32-bit and 64-bit systems.
- 'INT' => array('php_type' => 'int', 'min' => -2147483648, 'max' => (int) 0x7fffffff),
+ // Do not use (int) 0x80000000 - it evaluates to different
+ // values on 32-bit and 64-bit systems.
+ // Apparently -2147483648 is a float on 32-bit systems,
+ // despite fitting in an int, thus explicit cast is needed.
+ 'INT' => array('php_type' => 'int', 'min' => (int) -2147483648, 'max' => (int) 0x7fffffff),
'TINT' => array('php_type' => 'int', 'min' => -128, 'max' => 127),
'VCHAR' => array('php_type' => 'string', 'min' => 0, 'max' => 255),