diff --git a/Zend/tests/closure_write_prop.phpt b/Zend/tests/closure_write_prop.phpt new file mode 100644 index 00000000000..38bebf4e1b7 --- /dev/null +++ b/Zend/tests/closure_write_prop.phpt @@ -0,0 +1,22 @@ +--TEST-- +Cannot write to closure properties +--FILE-- +getFn()->b = new stdClass; +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} + +?> +--EXPECT-- +Closure object cannot have properties diff --git a/Zend/zend_closures.c b/Zend/zend_closures.c index 63b91aacbda..b1bebaded43 100644 --- a/Zend/zend_closures.c +++ b/Zend/zend_closures.c @@ -433,7 +433,7 @@ static ZEND_COLD zval *zend_closure_read_property(zend_object *object, zend_stri static ZEND_COLD zval *zend_closure_write_property(zend_object *object, zend_string *member, zval *value, void **cache_slot) /* {{{ */ { ZEND_CLOSURE_PROPERTY_ERROR(); - return value; + return &EG(error_zval); } /* }}} */