diff options
author | Marcus Boerger <helly@php.net> | 2005-03-11 02:32:07 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2005-03-11 02:32:07 +0000 |
commit | b4a961a2349e47c588b32826cf6f8af0cbcf5b3d (patch) | |
tree | 3f7866dd51b1bb815059ba9d5a3128042d5f7775 | |
parent | 5a94bb642f75c5f5bb96bcbfcfebf5f1eb185a5d (diff) | |
download | php-git-b4a961a2349e47c588b32826cf6f8af0cbcf5b3d.tar.gz |
- Add new test
-rwxr-xr-x | Zend/tests/bug32252.phpt | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Zend/tests/bug32252.phpt b/Zend/tests/bug32252.phpt new file mode 100755 index 0000000000..706da18cfb --- /dev/null +++ b/Zend/tests/bug32252.phpt @@ -0,0 +1,47 @@ +--TEST-- +Bug #32252 (Segfault when offsetSet throws an Exception (only without debug)) +--FILE-- +<?php + +class Test implements ArrayAccess +{ + function offsetExists($offset) + { + echo __METHOD__ . "($offset)\n"; + return false; + } + + function offsetGet($offset) + { + echo __METHOD__ . "($offset)\n"; + return null; + } + + function offsetSet($offset, $value) + { + echo __METHOD__ . "($offset, $value)\n"; + throw new Exception("Ooops"); + } + + function offsetUnset($offset) + { + echo __METHOD__ . "($offset)\n"; + } +} + +$list = new Test(); +try +{ + $list[-1] = 123; +} +catch (Exception $e) +{ + echo "CAUGHT\n"; +} + +?> +===DONE=== +--EXPECT-- +Test::offsetSet(-1, 123) +CAUGHT +===DONE=== |