summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKalle Sommer Nielsen <kalle@php.net>2010-09-13 20:14:18 +0000
committerKalle Sommer Nielsen <kalle@php.net>2010-09-13 20:14:18 +0000
commit67b4af3e6a81ba5bedcbe3e0f7a04a340cd9b60b (patch)
treef88fc518bc669ad6ae321230a4fba9731fe1c9c1
parente5e089950b221accb7625f0c8a8441f73ac43f3e (diff)
downloadphp-git-67b4af3e6a81ba5bedcbe3e0f7a04a340cd9b60b.tar.gz
Fixed bug #52772 (var_dump() doesn't check for the existence of get_class_name before calling it)
-rw-r--r--ext/standard/var.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/ext/standard/var.c b/ext/standard/var.c
index 3e3b8eb163..48981f0b39 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -133,9 +133,13 @@ PHPAPI void php_var_dump(zval **struc, int level TSRMLS_DC) /* {{{ */
return;
}
- Z_OBJ_HANDLER(**struc, get_class_name)(*struc, &class_name, &class_name_len, 0 TSRMLS_CC);
- php_printf("%sobject(%s)#%d (%d) {\n", COMMON, class_name, Z_OBJ_HANDLE_PP(struc), myht ? zend_hash_num_elements(myht) : 0);
- efree(class_name);
+ if (Z_OBJ_HANDLER(**struc, get_class_name) {
+ Z_OBJ_HANDLER(**struc, get_class_name)(*struc, &class_name, &class_name_len, 0 TSRMLS_CC);
+ php_printf("%sobject(%s)#%d (%d) {\n", COMMON, class_name, Z_OBJ_HANDLE_PP(struc), myht ? zend_hash_num_elements(myht) : 0);
+ efree(class_name);
+ } else {
+ php_printf("%sobject(unknown class)#%d (%d) {\n", COMMON, Z_OBJ_HANDLE_PP(struc), myht ? zend_hash_num_elements(myht) : 0);
+ }
php_element_dump_func = php_object_property_dump;
head_done:
if (myht) {