Annotation of embedaddon/php/ext/filter/tests/048.phpt, revision 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>