mirror of
https://github.com/php/php-src.git
synced 2024-09-21 09:57:23 +00:00
Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0: Fixed #73969 - Fixed segmentation fault when debug_print_backtrace called
This commit is contained in:
commit
8bda542064
1
NEWS
1
NEWS
@ -8,6 +8,7 @@ PHP NEWS
|
||||
. Fixed bug #73876 (Crash when exporting **= in expansion of assign op).
|
||||
(Sara)
|
||||
. Fixed bug #73962 (bug with symlink related to cyrillic directory). (Anatol)
|
||||
. Fixed bug #73969 (segfault in debug_print_backtrace). (andrewnester)
|
||||
|
||||
- DTrace:
|
||||
. Fixed bug #73965 (DTrace reported as enabled when disabled). (Remi)
|
||||
|
@ -2447,12 +2447,17 @@ ZEND_FUNCTION(debug_print_backtrace)
|
||||
|
||||
if (call->func) {
|
||||
func = call->func;
|
||||
function_name = (func->common.scope &&
|
||||
func->common.scope->trait_aliases) ?
|
||||
ZSTR_VAL(zend_resolve_method_name(
|
||||
(object ? object->ce : func->common.scope), func)) :
|
||||
(func->common.function_name ?
|
||||
ZSTR_VAL(func->common.function_name) : NULL);
|
||||
zend_string *zend_function_name;
|
||||
if (func->common.scope && func->common.scope->trait_aliases) {
|
||||
zend_function_name = zend_resolve_method_name(object ? object->ce : func->common.scope, func);
|
||||
} else {
|
||||
zend_function_name = func->common.function_name;
|
||||
}
|
||||
if (zend_function_name != NULL) {
|
||||
function_name = ZSTR_VAL(zend_function_name);
|
||||
} else {
|
||||
function_name = NULL;
|
||||
}
|
||||
} else {
|
||||
func = NULL;
|
||||
function_name = NULL;
|
||||
|
2
tests/basic/bug73969.inc
Normal file
2
tests/basic/bug73969.inc
Normal file
@ -0,0 +1,2 @@
|
||||
<?php
|
||||
debug_print_backtrace();
|
30
tests/basic/bug73969.phpt
Normal file
30
tests/basic/bug73969.phpt
Normal file
@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Bug #73969: segfault on debug_print_backtrace with require() call
|
||||
--FILE--
|
||||
<?php
|
||||
trait c2
|
||||
{
|
||||
public static function f1()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class c1
|
||||
{
|
||||
use c2
|
||||
{
|
||||
c2::f1 as f2;
|
||||
}
|
||||
|
||||
public static function go()
|
||||
{
|
||||
return require('bug73969.inc');
|
||||
}
|
||||
}
|
||||
|
||||
c1::go();
|
||||
?>
|
||||
--EXPECTF--
|
||||
#0 require() called at [%s:19]
|
||||
#1 c1::go() called at [%s:23]
|
Loading…
Reference in New Issue
Block a user