From aab8305c03fb9727381b6e42b81f7aec2c9fa1f4 Mon Sep 17 00:00:00 2001 From: Matt Wilmas Date: Fri, 30 May 2008 11:05:35 +0000 Subject: [PATCH] Fixed memcmp() check with hash_quick_del (realKeyLength would be 0) --- Zend/zend_hash.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index 13672f993a..52b6116e28 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -622,13 +622,11 @@ ZEND_API int zend_u_hash_del_key_or_index(HashTable *ht, zend_uchar type, zstr a uint nIndex; Bucket *p; void *tmp = NULL; - uint realKeyLength = 0; IS_CONSISTENT(ht); if (flag == HASH_DEL_KEY) { UNICODE_KEY(ht, type, arKey, nKeyLength, tmp); - realKeyLength = USTR_BYTES(type, nKeyLength); h = zend_u_inline_hash_func(type, arKey, nKeyLength); } nIndex = h & ht->nTableMask; @@ -639,7 +637,7 @@ ZEND_API int zend_u_hash_del_key_or_index(HashTable *ht, zend_uchar type, zstr a && (p->nKeyLength == nKeyLength) && ((p->nKeyLength == 0) /* Numeric index (short circuits the memcmp()) */ || ((p->key.type == type) - && !memcmp(p->key.arKey.s, arKey.s, realKeyLength)))) { + && !memcmp(p->key.arKey.s, arKey.s, USTR_BYTES(type, nKeyLength))))) { HANDLE_BLOCK_INTERRUPTIONS(); if (p == ht->arBuckets[nIndex]) { ht->arBuckets[nIndex] = p->pNext; -- 2.40.0