ID: 47745 Updated by: [email protected] Reported By: for-bugs at hnw dot jp Status: Assigned Bug Type: Filter related Operating System: * PHP Version: 5.2.9 Assigned To: iliaa New Comment:
Must have been sleep deprived when I looked at this last. Previous Comments: ------------------------------------------------------------------------ [2009-03-29 16:47:47] [email protected] 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] [email protected] 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] [email protected] 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? ------------------------------------------------------------------------ [2009-03-21 23:34:01] for-bugs at hnw dot jp Description: ------------ Although -2147483648 is the minimum integer in 32bit environment, FILTER_VALIDATE_INT says -2147483648 is invalid as integer. Reproduce code: --------------- <?php var_dump(intval("-2147483648")); var_dump(filter_var("-2147483648", FILTER_VALIDATE_INT)); Expected result: ---------------- int(-2147483648) int(-2147483648) Actual result: -------------- int(-2147483648) bool(false) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=47745&edit=1
