ID:               31185
 Comment by:       Jason at amp-design dot net
 Reported By:      Jason at AMP-design dot net
 Status:           Verified
 Bug Type:         SPL related
 Operating System: *
 PHP Version:      5CVS-2005-01-10
 New Comment:

Just to let you know this bug also occurs when you throw exceptions
from other internal SPL methods. For instance, if an exception is
thrown in Iterator::current() PHP will crash.

Interestingly enough, when I ran this on the command line version of
PHP (under Mac OS), where the Exception is thrown, it echos "Bus error"
on to the console. I have no idea what a "bus" has to do with this, but
it might help you track the problem.

I guess it would be worth checking other methods in the SPL for this
bug seeing as it occurs in various interfaces that bind into core parts
of the Zend engine.


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

Reply via email to