#47745 [Asn]: FILTER_VALIDATE_INT doesn't allow minimum integer
| From: | iliaa@php.net | Date: | Sun, 29 Mar 2009 16:43:24 +0000 |
| Subject: | #47745 [Asn]: FILTER_VALIDATE_INT doesn't allow minimum integer | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-135277@lists.php.net to get a copy of this message | ||
ID: 47745
Updated by: iliaa@php.net
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:
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...
Previous Comments:
------------------------------------------------------------------------
[2009-03-26 22:44:17] scottmac@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?
------------------------------------------------------------------------
[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