diff options
author | Johannes Schlüter <johannes@php.net> | 2012-12-13 22:39:35 +0100 |
---|---|---|
committer | Johannes Schlüter <johannes@php.net> | 2012-12-13 22:39:35 +0100 |
commit | a11606b18fd20be1048a858eb5011fb7117855a9 (patch) | |
tree | 9c75e89231f0c67b5646f968f25f58b5cc18f899 /Zend/tests | |
parent | 39a3007ab2f88d860beb524024ab97fb13110561 (diff) | |
download | php-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.phpt | 53 |
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}" + |