From dd6e75c230f921cf741eb02773fd90ac75237426 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Wed, 15 Jul 2009 01:08:15 +0000 Subject: [PATCH] - Fixed bug #48899 (is_callable returns true even if method does not exist in parent class) --- Zend/tests/bug48899.phpt | 24 ++++++++++++++++++++++++ Zend/zend_API.c | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 Zend/tests/bug48899.phpt diff --git a/Zend/tests/bug48899.phpt b/Zend/tests/bug48899.phpt new file mode 100644 index 00000000000..ff640543cbc --- /dev/null +++ b/Zend/tests/bug48899.phpt @@ -0,0 +1,24 @@ +--TEST-- +Bug #48899 (is_callable returns true even if method does not exist in parent class) +--FILE-- +testIsCallable(); +$child->testIsCallable2(); + +?> +--EXPECT-- +bool(false) +bool(true) diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 73f44be6524..c147601b1d3 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2907,7 +2907,7 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca } } else { get_function_via_handler: - if (fcc->object_ptr) { + if (fcc->object_ptr && fcc->calling_scope == ce_org) { if (Z_OBJ_HT_P(fcc->object_ptr)->get_method) { zstr method = mname; int method_len = mlen;