summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_builtin_functions.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index 6eeecc9b1a..e18eb86a41 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -1321,10 +1321,10 @@ ZEND_FUNCTION(debug_print_backtrace)
int lineno;
char *function_name;
char *filename;
- char *class_name;
+ char *class_name = NULL;
char *call_type;
char *include_filename = NULL;
- zval *arg_array;
+ zval *arg_array = NULL;
void **cur_arg_pos = EG(argument_stack).top_element;
void **args = cur_arg_pos;
int arg_stack_consistent = 0;
@@ -1425,8 +1425,10 @@ ZEND_FUNCTION(debug_print_backtrace)
ZEND_PUTS(call_type);
}
zend_printf("%s(", function_name?function_name:"main");
- debug_print_backtrace_args(arg_array);
- ZVAL_DELREF(arg_array);
+ if (arg_array) {
+ debug_print_backtrace_args(arg_array);
+ zval_ptr_dtor(&arg_array);
+ }
zend_printf(") called at [%s:%d]\n", filename, lineno);
include_filename = filename;
ptr = ptr->prev_execute_data;