From 170918c6eb8af7e96d4329bced2e40a6e339b13a Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Sat, 17 Dec 2005 15:50:24 +0000 Subject: - Fix Bug #35720 A final constructor can be overwritten --- Zend/zend_compile.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'Zend') diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index ff20c63625..8532fcb46f 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1941,6 +1941,12 @@ static void do_inherit_parent_constructor(zend_class_entry *ce TSRMLS_DC) ce->destructor = ce->parent->destructor; } if (ce->constructor) { + if (ce->parent->constructor && ce->parent->constructor->common.fn_flags & ZEND_ACC_FINAL) { + zend_error(E_ERROR, "Cannot override final %v::%v() with %v::%v()", + ce->parent->name, ce->parent->constructor->common.function_name, + ce->name, ce->constructor->common.function_name + ); + } return; } -- cgit v1.2.1