#47745 [Asn]: FILTER_VALIDATE_INT doesn't allow minimum integer

[email protected] ("for-bugs at hnw dot jp")
Newsgroups php.bugs
Message-ID <[email protected]>
 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] [email protected]

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] [email protected]

Must have been sleep deprived when I looked at this last.

------------------------------------------------------------------------

[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?

------------------------------------------------------------------------

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
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.