From d2c5721f4174c2f54af9b72b2cf491b70872f126 Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Sat, 20 Jan 2007 23:10:02 +0000 Subject: [PATCH] MFH: catch overflow right away --- Zend/zend_hash.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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; -- 2.50.1