]> granicus.if.org Git - php/commitdiff
Fix leak in guards patch
authorNikita Popov <nikic@php.net>
Thu, 28 Apr 2016 17:19:28 +0000 (19:19 +0200)
committerNikita Popov <nikic@php.net>
Thu, 28 Apr 2016 17:20:51 +0000 (19:20 +0200)
Zend/zend_object_handlers.c

index ca6ec6ac7eef547861d4745e066cf47a26aa94fd..c74ef7508d152d9fd4de540bdd5974263c569c41 100644 (file)
@@ -543,7 +543,9 @@ static uint32_t *zend_get_property_guard(zend_object *zobj, zend_string *member)
                        ALLOC_HASHTABLE(guards);
                        zend_hash_init(guards, 8, NULL, zend_property_guard_dtor, 0);
                        /* mark pointer as "special" using low bit */
-                       zend_hash_add_new_ptr(guards, member, (void*)(((zend_uintptr_t)&zv->u2.property_guard) | 1));
+                       zend_hash_add_new_ptr(guards, member,
+                               (void*)(((zend_uintptr_t)&zv->u2.property_guard) | 1));
+                       zend_string_release(Z_STR_P(zv));
                        ZVAL_ARR(zv, guards);
                }
        } else if (EXPECTED(Z_TYPE_P(zv) == IS_ARRAY)) {