summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/classes/bug27504.phpt24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/classes/bug27504.phpt b/tests/classes/bug27504.phpt
new file mode 100644
index 0000000000..64d68ba8ae
--- /dev/null
+++ b/tests/classes/bug27504.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Bug #27504 (call_user_func_array allows calling of private/protected methods)
+--FILE--
+<?php
+ class foo {
+ function __construct () {
+ $this->bar('1');
+ }
+ private function bar ( $param ) {
+ echo 'Called function foo:bar('.$param.')'."\n";
+ }
+ }
+
+ $foo = new foo();
+
+ call_user_func_array( array( $foo , 'bar' ) , array( '2' ) );
+
+ $foo->bar('3');
+?>
+--EXPECTF--
+Called function foo:bar(%d)
+
+Fatal error: Call to private method foo::bar() from context '' in %s on line 13
+