From: Andi Gutmans Date: Sat, 7 Dec 2002 15:51:25 +0000 (+0000) Subject: - Dissallow using parent, self and main as class names X-Git-Tag: RELEASE_1_0b3~128 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1d1a796b588e7991a06406ecdec90b84b973998a;p=php - Dissallow using parent, self and main as class names --- diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 071502ddac..d11371ed74 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -2106,6 +2106,10 @@ void zend_do_begin_class_declaration(znode *class_token, znode *class_name, znod class_token->u.previously_active_class_entry = CG(active_class_entry); new_class_entry->type = ZEND_USER_CLASS; + if (!(strcmp(class_name->u.constant.value.str.val, "main") && strcmp(class_name->u.constant.value.str.val, "self") && + strcmp(class_name->u.constant.value.str.val, "parent"))) { + zend_error(E_COMPILE_ERROR, "Cannot use '%s' as class name as it is reserved", class_name->u.constant.value.str.val); + } if (CG(active_class_entry)) { new_class_entry->name_length = sizeof("::")-1 + class_name->u.constant.value.str.len + CG(active_class_entry)->name_length; new_class_entry->name = emalloc(new_class_entry->name_length+1);