--TEST--
Hex integer overflow
--SKIPIF--
<?php if (!extension_loaded("filter")) die("skip"); ?>
--FILE--
<?php
function hex_inc($s) {
    
$len strlen($s);
    while (
$len 0) {
        
$len--;
        if (
$s[$len] != 'f') {
            if (
$s[$len] == '9') {
                
$s[$len] = 'a';
            } else {
                
$s[$len] = $s[$len] + 1;
            }
            return 
$s;
        }
        
$s[$len] = '0';
    }
    return 
'1'.$s;
}


$s sprintf("%x"PHP_INT_MAX);
var_dump(is_long(filter_var('0x'.$sFILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))));

$s hex_inc($s);
var_dump(is_long(filter_var('0x'.$sFILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))));

$s sprintf("%x", ~0);
var_dump(is_long(filter_var('0x'.$sFILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))));

$s hex_inc($s);
var_dump(filter_var('0x'.$sFILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX)));
?>
--EXPECT--
bool(true)
bool(true)
bool(true)
bool(false)