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