From 4119b09a1a81c2dbd6514863c715795ef7f2e115 Mon Sep 17 00:00:00 2001 From: Kalle Sommer Nielsen Date: Mon, 13 Sep 2010 20:14:18 +0000 Subject: [PATCH] Fixed bug #52772 (var_dump() doesn't check for the existence of get_class_name before calling it) --- NEWS | 2 ++ ext/standard/var.c | 10 +++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index b989414398..7923f29648 100644 --- a/NEWS +++ b/NEWS @@ -23,6 +23,8 @@ - Fixed bug #52786 (PHP should reset section to [PHP] after ini sections). (Fedora at famillecollet dot com) +- Fixed bug #52772 (var_dump() doesn't check for the existence of + get_class_name before calling it). (Kalle, Gustavo) - Fixed bug #52744 (cal_days_in_month incorrect for December 1 BCE). (gpap at internet dot gr, Adam) - Fixed bug #52725 (gcc builtin atomic functions were sometimes used when they diff --git a/ext/standard/var.c b/ext/standard/var.c index 87493fd62b..e2e1f1a0fb 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -284,9 +284,13 @@ PHPAPI void php_debug_zval_dump(zval **struc, int level TSRMLS_DC) /* {{{ */ return; } ce = Z_OBJCE_PP(struc); - Z_OBJ_HANDLER_PP(struc, get_class_name)(*struc, &class_name, &class_name_len, 0 TSRMLS_CC); - php_printf("%sobject(%s)#%d (%d) refcount(%u){\n", COMMON, class_name, Z_OBJ_HANDLE_PP(struc), myht ? zend_hash_num_elements(myht) : 0, Z_REFCOUNT_PP(struc)); - efree(class_name); + if (Z_OBJ_HANDLER_PP(struc, get_class_name)) { + Z_OBJ_HANDLER_PP(struc, get_class_name)(*struc, &class_name, &class_name_len, 0 TSRMLS_CC); + php_printf("%sobject(%s)#%d (%d) refcount(%u){\n", COMMON, class_name, Z_OBJ_HANDLE_PP(struc), myht ? zend_hash_num_elements(myht) : 0, Z_REFCOUNT_PP(struc)); + efree(class_name); + } else { + php_printf("%sobject(unknown class)#%d (%d) refcount(%u){\n", COMMON, Z_OBJ_HANDLE_PP(struc), myht ? zend_hash_num_elements(myht) : 0, Z_REFCOUNT_PP(struc)); + } zval_element_dump_func = zval_object_property_dump; head_done: if (myht) { -- 2.50.1