diff options
-rw-r--r-- | Zend/zend_compile.c | 4 |
1 files changed, 4 insertions, 0 deletions
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); |