Browse Source

Merge branch 'PHP-5.6' into PHP-7.0

pull/1559/merge
Nikita Popov 10 years ago
parent
commit
d677b25b1c
  1. 5
      Zend/tests/bug70681.phpt
  2. 2
      Zend/zend_closures.c

5
Zend/tests/bug70681.phpt

@ -6,6 +6,11 @@ Bug #70681: Segfault when binding $this of internal instance method to null
$c = (new ReflectionMethod('SplStack', 'count'))->getClosure(new SplStack);
$c = $c->bindTo(null);
$c = (new ReflectionFunction('strlen'))->getClosure();
$c = $c->bindTo(null);
var_dump($c("foo"));
?>
--EXPECTF--
Warning: Cannot unbind $this of internal method in %s on line %d
int(3)

2
Zend/zend_closures.c

@ -174,7 +174,7 @@ ZEND_METHOD(Closure, bind)
}
if (newthis == NULL && !(closure->func.common.fn_flags & ZEND_ACC_STATIC)
&& closure->func.type == ZEND_INTERNAL_FUNCTION) {
&& closure->func.common.scope && closure->func.type == ZEND_INTERNAL_FUNCTION) {
zend_error(E_WARNING, "Cannot unbind $this of internal method");
return;
}

Loading…
Cancel
Save