diff options
author | Kalle Sommer Nielsen <kalle@php.net> | 2010-09-13 20:14:18 +0000 |
---|---|---|
committer | Kalle Sommer Nielsen <kalle@php.net> | 2010-09-13 20:14:18 +0000 |
commit | 02f2359ad55cf2687313e3c7da2186450c376a4c (patch) | |
tree | 3ea2ce52124387d34cd7331657d76589c4ca7255 | |
parent | 0b9437483cdb1569055666e3e25e64265a14acf7 (diff) | |
download | php-git-02f2359ad55cf2687313e3c7da2186450c376a4c.tar.gz |
Fixed bug #52772 (var_dump() doesn't check for the existence of get_class_name before calling it)
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | ext/standard/var.c | 10 |
2 files changed, 9 insertions, 3 deletions
@@ -3,6 +3,8 @@ ?? ??? 2010, PHP 5.2.15 - Fixed possible crash in mssql_fetch_batch(). (Kalle) +- Fixed bug #52772 (var_dump() doesn't check for the existence of + get_class_name before calling it). (Kalle, Gustavo) - Fixed bug #52546 (pdo_dblib segmentation fault when iterating MONEY values). (Felipe, Adam) - Fixed bug #52436 (Compile error if systems do not have stdint.h) diff --git a/ext/standard/var.c b/ext/standard/var.c index 6d0dd6828d..164587e8d2 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -140,9 +140,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) { |