]> granicus.if.org Git - php/commitdiff
- Dissallow using parent, self and main as class names
authorAndi Gutmans <andi@php.net>
Sat, 7 Dec 2002 15:51:25 +0000 (15:51 +0000)
committerAndi Gutmans <andi@php.net>
Sat, 7 Dec 2002 15:51:25 +0000 (15:51 +0000)
Zend/zend_compile.c

index 071502ddacbcd2d27d5b622a580034e52fcc76ba..d11371ed7455480558576ff48b6369adf033ab4e 100644 (file)
@@ -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);