Annotation of embedaddon/php/ext/filter/tests/048.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Hex integer overflow
                      3: --SKIPIF--
                      4: <?php if (!extension_loaded("filter")) die("skip"); ?>
                      5: --FILE--
                      6: <?php
                      7: function hex_inc($s) {
                      8:        $len = strlen($s);
                      9:        while ($len > 0) {
                     10:                $len--;
                     11:                if ($s[$len] != 'f') {
                     12:                        if ($s[$len] == '9') {
                     13:                                $s[$len] = 'a';
                     14:                        } else {
                     15:                                $s[$len] = $s[$len] + 1;
                     16:                        }
                     17:                        return $s;
                     18:                }
                     19:                $s[$len] = '0';
                     20:        }
                     21:        return '1'.$s;
                     22: }
                     23: 
                     24: 
                     25: $s = sprintf("%x", PHP_INT_MAX);
                     26: var_dump(is_long(filter_var('0x'.$s, FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))));
                     27: 
                     28: $s = hex_inc($s);
                     29: var_dump(is_long(filter_var('0x'.$s, FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))));
                     30: 
                     31: $s = sprintf("%x", ~0);
                     32: var_dump(is_long(filter_var('0x'.$s, FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX))));
                     33: 
                     34: $s = hex_inc($s);
                     35: var_dump(filter_var('0x'.$s, FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_HEX)));
                     36: ?>
                     37: --EXPECT--
                     38: bool(true)
                     39: bool(true)
                     40: bool(true)
                     41: bool(false)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>