is_callable_trampoline_uaf.phpt 459 B

123456789101112131415161718192021222324252627
  1. --TEST--
  2. is_callable() with trampoline should not caused UAF
  3. --FILE--
  4. <?php
  5. class B {}
  6. class A extends B {
  7. public function bar($func) {
  8. var_dump(is_callable(array('parent', 'foo')));
  9. }
  10. public function __call($func, $args) {
  11. }
  12. }
  13. class X {
  14. public static function __callStatic($func, $args) {
  15. }
  16. }
  17. $a = new A();
  18. // Extra X::foo() wrapper to force use of allocated trampoline.
  19. X::foo($a->bar('foo'));
  20. ?>
  21. --EXPECT--
  22. bool(false)