summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_object_handlers.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c
index 74cc0fad0c..98b19f6b44 100644
--- a/Zend/zend_object_handlers.c
+++ b/Zend/zend_object_handlers.c
@@ -86,7 +86,9 @@ ZEND_API void rebuild_object_properties(zend_object *zobj) /* {{{ */
prop_info->offset >= 0 &&
Z_TYPE(zobj->properties_table[prop_info->offset]) != IS_UNDEF) {
zval *zv = zend_hash_add(zobj->properties, prop_info->name, &zobj->properties_table[prop_info->offset]);
- ZVAL_INDIRECT(&zobj->properties_table[prop_info->offset], zv);
+ if (EXPECTED(zv)) {
+ ZVAL_INDIRECT(&zobj->properties_table[prop_info->offset], zv);
+ }
}
}
while (ce->parent && ce->parent->default_properties_count) {
@@ -100,7 +102,9 @@ ZEND_API void rebuild_object_properties(zend_object *zobj) /* {{{ */
prop_info->offset >= 0 &&
Z_TYPE(zobj->properties_table[prop_info->offset]) != IS_UNDEF) {
zval *zv = zend_hash_add(zobj->properties, prop_info->name, &zobj->properties_table[prop_info->offset]);
- ZVAL_INDIRECT(&zobj->properties_table[prop_info->offset], zv);
+ if (EXPECTED(zv)) {
+ ZVAL_INDIRECT(&zobj->properties_table[prop_info->offset], zv);
+ }
}
}
}