ID: 31185
Updated by: [EMAIL PROTECTED]
Reported By: Jason at AMP-design dot net
-Status: Open
+Status: Verified
-Bug Type: Reproducible crash
+Bug Type: SPL related
-Operating System: Windows 2003 / CentOS 3
+Operating System: *
-PHP Version: 5.0.3
+PHP Version: 5CVS-2005-01-10
Previous Comments:
------------------------------------------------------------------------
[2004-12-19 16:56:06] Jason at AMP-design dot net
Description:
------------
This crashes both on PHP 5.0.3 on Windows 2003 / Apache 2.0.52 and
Centos 3 (Redhat Entperise Linux 3 for cheapskates) with Apache 2.0.48
and PHP 5.0.2
This occurs due to the Exception thrown. Removing the exception will
prevent the crash.
Reproduce code:
---------------
<?php
header('Content-type: text/plain');
class FooBar implements ArrayAccess {
private $array = array();
public function offsetExists($index) {
return isset($this->array[$index]);
}
public function offsetGet($index) {
return $this->array[$index];
}
public function offsetSet($index, $value) {
$this->array[$index] = $value;
}
public function offsetUnset($index) {
throw new Exception('Just try and make me crash ya sucker ;-)');
unset($this->array[$index]);
}
}
$i = 0;
$foo = new FooBar();
$foo[$i] = $i++;
$foo[$i] = $i++;
$foo[$i] = $i++;
unset($foo[1]);
print_R($foo);
?>
Expected result:
----------------
$foo would dump out it's array elements which should be 0 and 2
Actual result:
--------------
Apache crash (exists with Parent: child process exited with status
3221225477 -- Restarting on Windows Apache 2 log, dunno about Linux,
can't be faffed to mess about in SSH, however I do not get a HTTP
reponse, and therefore I assume it segfaults)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=31185&edit=1