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:
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 :)
Previous Comments:
------------------------------------------------------------------------
[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
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.