]> granicus.if.org Git - php/commitdiff
Fixed bug #52772 (var_dump() doesn't check for the existence of get_class_name before...
authorKalle Sommer Nielsen <kalle@php.net>
Mon, 13 Sep 2010 20:14:18 +0000 (20:14 +0000)
committerKalle Sommer Nielsen <kalle@php.net>
Mon, 13 Sep 2010 20:14:18 +0000 (20:14 +0000)
ext/standard/var.c

index 3e3b8eb163b20e80591300e4f3bc07868fc7e19f..48981f0b39f9bd6c02d5429f4f577f05da48a602 100644 (file)
@@ -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) {