ID: 47745 User updated by: for-bugs at hnw dot jp Reported By: for-bugs at hnw dot jp Status: Assigned Bug Type: Filter related Operating System: * PHP Version: 5.2.9 Assigned To: dmitry New Comment:
Result on 64bit environment: $ php -r 'var_dump(intval((string)~PHP_INT_MAX));' int(-9223372036854775808) $ php -r 'var_dump(filter_var((string)~PHP_INT_MAX, FILTER_VALIDATE_INT));' bool(false) There is same problem on 64bit environment, I think. Previous Comments: ------------------------------------------------------------------------ [2009-03-30 19:47:42] il...@php.net The multiplication is done by the standard ZEND macro, so if there is a limit issue it needs to be handled inside the Zend Engine. That said on my 64bit machine, I cannot reproduce the issue via - PHP_INT_MAX ------------------------------------------------------------------------ [2009-03-29 21:38:18] scott...@php.net Must have been sleep deprived when I looked at this last. ------------------------------------------------------------------------ [2009-03-29 16:47:47] paj...@php.net The only problem is the value we use for the max unsigned range. It should be changed to allow - 2^31, but I did not check the code more in details, but Ilia is on it so :) ------------------------------------------------------------------------ [2009-03-29 16:43:23] il...@php.net We don't eat a 0. When parsing #s we follow this logic: Let's say X is our temp var containing the 1st digit and the number to be parsed is 435. X = X * 10; X += 3; (X = 43) X = X * 10; X += 5; (X = 435) There is no 0 eating etc... ------------------------------------------------------------------------ [2009-03-26 22:44:17] scott...@php.net For some reason php_filter_parse_int multiplies the integer by ten then attempts to eat a 0? This is causing overflow and resulting in an error. I have no idea why its doing this though. ilia? ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/47745 -- Edit this bug report at http://bugs.php.net/?id=47745&edit=1