From: Stanislav Malyshev Date: Tue, 3 Jan 2017 04:14:05 +0000 (-0800) Subject: Fix #73832 - leave the table in a safe state if the size is too big. X-Git-Tag: php-7.0.15RC1~18^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4cc0286f2f3780abc6084bcdae5dce595daa3c12;p=php Fix #73832 - leave the table in a safe state if the size is too big. --- diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index 322422da15..8b54a3932d 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -175,7 +175,6 @@ ZEND_API void ZEND_FASTCALL _zend_hash_init(HashTable *ht, uint32_t nSize, dtor_ GC_REFCOUNT(ht) = 1; GC_TYPE_INFO(ht) = IS_ARRAY; ht->u.flags = (persistent ? HASH_FLAG_PERSISTENT : 0) | HASH_FLAG_APPLY_PROTECTION | HASH_FLAG_STATIC_KEYS; - ht->nTableSize = zend_hash_check_size(nSize); ht->nTableMask = HT_MIN_MASK; HT_SET_DATA_ADDR(ht, &uninitialized_bucket); ht->nNumUsed = 0; @@ -183,6 +182,7 @@ ZEND_API void ZEND_FASTCALL _zend_hash_init(HashTable *ht, uint32_t nSize, dtor_ ht->nInternalPointer = HT_INVALID_IDX; ht->nNextFreeElement = 0; ht->pDestructor = pDestructor; + ht->nTableSize = zend_hash_check_size(nSize); } static void ZEND_FASTCALL zend_hash_packed_grow(HashTable *ht)