From: Antony Dovgal Date: Sat, 20 Jan 2007 23:10:02 +0000 (+0000) Subject: MFH: catch overflow right away X-Git-Tag: RELEASE_1_2_3~28 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d2c5721f4174c2f54af9b72b2cf491b70872f126;p=php MFH: catch overflow right away --- diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index b547d99ee8..a5faafefed 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -141,11 +141,16 @@ ZEND_API int _zend_hash_init(HashTable *ht, uint nSize, hash_func_t pHashFunctio SET_INCONSISTENT(HT_OK); - while ((1U << i) < nSize) { - i++; + if (nSize >= 0x80000000) { + /* prevent overflow */ + ht->nTableSize = 0x80000000; + } else { + while ((1U << i) < nSize) { + i++; + } + ht->nTableSize = 1 << i; } - ht->nTableSize = 1 << i; ht->nTableMask = ht->nTableSize - 1; ht->pDestructor = pDestructor; ht->arBuckets = NULL;