diff options
author | Xinchen Hui <laruence@gmail.com> | 2016-03-21 19:12:50 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@gmail.com> | 2016-03-21 19:12:50 +0800 |
commit | 9712a974beb53f47bcffb2c6554cc5c85d231fe2 (patch) | |
tree | 43427925518bcaa99a9f076c287e3835aca1e4b2 /Zend/zend_operators.c | |
parent | a9a46f17be6c4460ab0ee785978d6e430ce96017 (diff) | |
download | php-git-9712a974beb53f47bcffb2c6554cc5c85d231fe2.tar.gz |
Also protects object to array cast
Diffstat (limited to 'Zend/zend_operators.c')
-rw-r--r-- | Zend/zend_operators.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 5cbe393d14..50557e56d8 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -597,7 +597,9 @@ try_again: if (obj_ht) { zval arr; - if (!Z_OBJCE_P(op)->default_properties_count && obj_ht == Z_OBJ_P(op)->properties) { + if (!Z_OBJCE_P(op)->default_properties_count && + obj_ht == Z_OBJ_P(op)->properties && + !ZEND_HASH_GET_APPLY_COUNT(Z_OBJ_P(op)->properties)) { /* fast copy */ if (EXPECTED(Z_OBJ_P(op)->handlers == &std_object_handlers)) { ZVAL_ARR(&arr, obj_ht); |