Annotation of embedaddon/php/ext/filter/tests/047.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Octal integer overflow
3: --SKIPIF--
4: <?php if (!extension_loaded("filter")) die("skip"); ?>
5: --FILE--
6: <?php
7: function octal_inc($s) {
8: $len = strlen($s);
9: while ($len > 0) {
10: $len--;
11: if ($s[$len] != '7') {
12: $s[$len] = $s[$len] + 1;
13: return $s;
14: }
15: $s[$len] = '0';
16: }
17: return '1'.$s;
18: }
19:
20:
21: $s = sprintf("%o", PHP_INT_MAX);
22: var_dump(is_long(filter_var('0'.$s, FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))));
23:
24: $s = octal_inc($s);
25: var_dump(is_long(filter_var('0'.$s, FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))));
26:
27: $s = sprintf("%o", ~0);
28: var_dump(is_long(filter_var('0'.$s, FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL))));
29:
30: $s = octal_inc($s);
31: var_dump(filter_var('0'.$s, FILTER_VALIDATE_INT, array("flags"=>FILTER_FLAG_ALLOW_OCTAL)));
32: ?>
33: --EXPECT--
34: bool(true)
35: bool(true)
36: bool(true)
37: bool(false)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>