diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2017-09-04 21:20:49 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2017-09-04 21:20:49 +0200 |
commit | b689857d53177b6027679f67fecbde8f36c174d1 (patch) | |
tree | 684081bd9b7e8ef961ba947701b18b011c3108be | |
parent | 296d0826da6173ec4b38b4ae87f0765ca7e34d55 (diff) | |
download | php-git-b689857d53177b6027679f67fecbde8f36c174d1.tar.gz |
Revert "Fixed #74977 - Appending AppendIterator leads to segfault"
This reverts commit dbc2ffba822d13e74e37f5ba6e106f163c1008e8.
-rw-r--r-- | ext/spl/spl_iterators.c | 7 | ||||
-rw-r--r-- | ext/spl/tests/bug74977.phpt | 13 |
2 files changed, 1 insertions, 19 deletions
diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c index 0daa55f4b4..4373a3b651 100644 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -3367,7 +3367,7 @@ SPL_METHOD(AppendIterator, __construct) Append an iterator */ SPL_METHOD(AppendIterator, append) { - spl_dual_it_object *intern, *appender; + spl_dual_it_object *intern; zval *it; SPL_FETCH_AND_CHECK_DUAL_IT(intern, getThis()); @@ -3379,11 +3379,6 @@ SPL_METHOD(AppendIterator, append) spl_array_iterator_append(&intern->u.append.zarrayit, it); intern->u.append.iterator->funcs->move_forward(intern->u.append.iterator); }else{ - appender = Z_SPLDUAL_IT_P(it); - if (appender->dit_type == DIT_AppendIterator) { - spl_array_iterator_append(&intern->u.append.zarrayit, &appender->u.append.zarrayit); - return; - } spl_array_iterator_append(&intern->u.append.zarrayit, it); } diff --git a/ext/spl/tests/bug74977.phpt b/ext/spl/tests/bug74977.phpt deleted file mode 100644 index 09e16eedfe..0000000000 --- a/ext/spl/tests/bug74977.phpt +++ /dev/null @@ -1,13 +0,0 @@ ---TEST-- -Bug #74977: Recursion leads to crash ---FILE-- -<?php - -$iterator = new AppendIterator(array("A","A","A")); -$iterator->append($iterator); -var_dump($iterator); -?> ---EXPECTF-- -object(AppendIterator)#1 (0) { -} - |