]> granicus.if.org Git - php/commitdiff
zend_hash_add might return NULL in ext/standard/tests/serialize/serialization_object...
authorXinchen Hui <laruence@gmail.com>
Tue, 25 Feb 2014 10:29:20 +0000 (18:29 +0800)
committerXinchen Hui <laruence@gmail.com>
Tue, 25 Feb 2014 10:29:20 +0000 (18:29 +0800)
Zend/zend_object_handlers.c

index 74cc0fad0cd50f061245150fb9008d7457992803..98b19f6b44a55f6babc5ead90e0420c594260bf0 100644 (file)
@@ -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);
+                                               }
                                        }
                                }
                        }