summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2005-03-11 02:32:07 +0000
committerMarcus Boerger <helly@php.net>2005-03-11 02:32:07 +0000
commitb4a961a2349e47c588b32826cf6f8af0cbcf5b3d (patch)
tree3f7866dd51b1bb815059ba9d5a3128042d5f7775
parent5a94bb642f75c5f5bb96bcbfcfebf5f1eb185a5d (diff)
downloadphp-git-b4a961a2349e47c588b32826cf6f8af0cbcf5b3d.tar.gz
- Add new test
-rwxr-xr-xZend/tests/bug32252.phpt47
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===