summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_builtin_functions.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index 734baf522a..80a78afcac 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -671,9 +671,10 @@ ZEND_FUNCTION(get_class_vars)
if (zend_lookup_class(Z_STRVAL_PP(class_name), Z_STRLEN_PP(class_name), &pce TSRMLS_CC) == FAILURE) {
RETURN_FALSE;
} else {
- int count = zend_hash_num_elements(&ce->default_properties);
+ int count;
ce = *pce;
+ count = zend_hash_num_elements(&ce->default_properties);
array_init(return_value);
if (count > 0) {
@@ -1680,6 +1681,11 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last TSRML
/* i know this is kinda ugly, but i'm trying to avoid extra cycles in the main execution loop */
zend_bool build_filename_arg = 1;
+ if (!ptr->opline) {
+ /* can happen when calling eval from a custom sapi */
+ function_name = "unknown";
+ build_filename_arg = 0;
+ } else
switch (ptr->opline->op2.u.constant.value.lval) {
case ZEND_EVAL:
function_name = "eval";