summaryrefslogtreecommitdiff
path: root/Zend/tests
diff options
context:
space:
mode:
authorJohannes Schlüter <johannes@php.net>2012-12-13 22:39:35 +0100
committerJohannes Schlüter <johannes@php.net>2012-12-13 22:39:35 +0100
commita11606b18fd20be1048a858eb5011fb7117855a9 (patch)
tree9c75e89231f0c67b5646f968f25f58b5cc18f899 /Zend/tests
parent39a3007ab2f88d860beb524024ab97fb13110561 (diff)
downloadphp-git-a11606b18fd20be1048a858eb5011fb7117855a9.tar.gz
Fix Bug #63762 Sigsegv when Exception::$trace is changed by user
Diffstat (limited to 'Zend/tests')
-rw-r--r--Zend/tests/bug63762.phpt53
1 files changed, 53 insertions, 0 deletions
diff --git a/Zend/tests/bug63762.phpt b/Zend/tests/bug63762.phpt
new file mode 100644
index 0000000000..8de177dcf8
--- /dev/null
+++ b/Zend/tests/bug63762.phpt
@@ -0,0 +1,53 @@
+--TEST--
+Bug #63762 - Sigsegv when Exception::$trace is changed by user
+--FILE--
+<?php
+$e = new Exception();
+
+$ref = new ReflectionProperty($e, 'trace');
+$ref->setAccessible(TRUE);
+
+echo "Array of NULL:\n";
+$ref->setValue($e, array(NULL));
+
+var_dump($e->getTraceAsString());
+
+echo "\nArray of empty array:\n";
+$ref->setValue($e, array(array()));
+var_dump($e->getTraceAsString());
+
+echo "\nArray of array of NULL values:\n";
+$ref->setValue($e, array(array(
+ 'file' => NULL,
+ 'line' => NULL,
+ 'class' => NULL,
+ 'type' => NULL,
+ 'function' => NULL,
+ 'args' => NULL
+)));
+var_dump($e->getTraceAsString());
+?>
+--EXPECTF--
+Array of NULL:
+
+Warning: Expected array for frame 0 in %s on line %d
+string(9) "#0 {main}"
+
+Array of empty array:
+string(36) "#0 [internal function]: ()
+#1 {main}"
+
+Array of array of NULL values:
+
+Warning: Function name is no string in %s on line %d
+
+Warning: Value for class is no string in %s on line %d
+
+Warning: Value for type is no string in %s on line %d
+
+Warning: Value for function is no string in %s on line %d
+
+Warning: args element is no array in %s on line %d
+string(60) "#0 [unknown function][unknown][unknown][unknown]()
+#1 {main}"
+