From 91eff553e326c7a4cd8d5e51528856a835be31e3 Mon Sep 17 00:00:00 2001 From: Andrei Zmievski Date: Thu, 3 Apr 2003 14:44:41 +0000 Subject: [PATCH] Initialize all relevant zend_class_entry fields to avoid accidental crashes. --- Zend/zend.c | 1 - Zend/zend_API.c | 1 - Zend/zend_compile.c | 8 +++++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Zend/zend.c b/Zend/zend.c index c9f50227c1..fc305fff49 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -377,7 +377,6 @@ static void register_standard_class(TSRMLS_D) zend_standard_class_def->type = ZEND_INTERNAL_CLASS; zend_standard_class_def->name_length = sizeof("stdClass") - 1; zend_standard_class_def->name = zend_strndup("stdClass", zend_standard_class_def->name_length); - zend_standard_class_def->parent = NULL; zend_initialize_class_data(zend_standard_class_def, 1 TSRMLS_CC); zend_hash_add(GLOBAL_CLASS_TABLE, "stdclass", sizeof("stdclass"), &zend_standard_class_def, sizeof(zend_class_entry *), NULL); diff --git a/Zend/zend_API.c b/Zend/zend_API.c index ce3e89a620..e492725c2b 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -1372,7 +1372,6 @@ ZEND_API zend_class_entry *zend_register_internal_class(zend_class_entry *orig_c *class_entry = *orig_class_entry; class_entry->type = ZEND_INTERNAL_CLASS; - class_entry->parent = NULL; zend_initialize_class_data(class_entry, 0 TSRMLS_CC); if (class_entry->builtin_functions) { diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 71dc97ba86..ec2d09bad7 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -2204,9 +2204,6 @@ void zend_do_begin_class_declaration(znode *class_token, znode *class_name, znod new_class_entry->name = class_name->u.constant.value.str.val; new_class_entry->name_length = class_name->u.constant.value.str.len; - new_class_entry->parent = NULL; - new_class_entry->num_interfaces = 0; - zend_initialize_class_data(new_class_entry, 1 TSRMLS_CC); new_class_entry->filename = zend_get_compiled_filename(TSRMLS_C); new_class_entry->line_start = zend_get_compiled_lineno(TSRMLS_C); @@ -3354,6 +3351,8 @@ void zend_init_namespace(zend_namespace *ns TSRMLS_DC) zend_hash_init_ex(&ns->constants_table, 10, NULL, ZVAL_PTR_DTOR, persistent_hashes, 0); ns->parent = NULL; + ns->num_interfaces = 0; + ns->interfaces = NULL; ns->ns = NULL; ns->constructor = NULL; ns->destructor = NULL; @@ -3523,6 +3522,9 @@ void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify_handlers ce->create_object = NULL; } + ce->parent = NULL; + ce->num_interfaces = 0; + ce->interfaces = NULL; ce->ns = CG(active_namespace); } -- 2.50.1