Annotation of embedaddon/php/ext/standard/tests/strings/bug55871.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #55871 (Interruption in substr_replace())
! 3: --FILE--
! 4: <?php
! 5: class test1 {
! 6: public function __toString() {
! 7: preg_match('//', '', $GLOBALS['my_var']);
! 8: return '';
! 9: }
! 10: }
! 11:
! 12: class test2 {
! 13: public function __toString() {
! 14: $GLOBALS['my_var'] += 0x08048000;
! 15: return '';
! 16: }
! 17: }
! 18:
! 19: class test3 {
! 20: public function __toString() {
! 21: $GLOBALS['my_var'] .= "AAAAAAAA";
! 22: return '';
! 23: }
! 24: }
! 25:
! 26: $my_var = str_repeat('A', 40);
! 27: $out = substr_replace(array(&$my_var), array(new test1), 40, 0);
! 28: var_dump($out);
! 29: $my_var = str_repeat('A', 40);
! 30: $out = substr_replace(array(&$my_var), array(new test2), 40, 0);
! 31: var_dump($out);
! 32: $my_var = str_repeat('A', 40);
! 33: $out = substr_replace(array(&$my_var), array(new test3), 40, 0);
! 34: var_dump($out);
! 35: --EXPECTF--
! 36:
! 37: Warning: substr_replace(): Argument was modified while replacing in %s on line %d
! 38: array(0) {
! 39: }
! 40:
! 41: Warning: substr_replace(): Argument was modified while replacing in %s on line %d
! 42: array(0) {
! 43: }
! 44:
! 45: Warning: substr_replace(): Argument was modified while replacing in %s on line %d
! 46: array(0) {
! 47: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>