summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTjerk Meesters <datibbaw@php.net>2014-05-13 09:42:12 +0800
committerTjerk Meesters <datibbaw@php.net>2014-05-13 11:58:28 +0800
commite7b50a8ee9ca7c07fe9ed6fd457a3df1ca71d319 (patch)
treeddab944cb0811ae371e643873fb838d98ce4b5b6
parent9f9ee0186eb3d1fcc2b3a4ecc55a0195233fd670 (diff)
downloadphp-git-e7b50a8ee9ca7c07fe9ed6fd457a3df1ca71d319.tar.gz
Convert to unpacked before deleting elements
Return FAILURE immediately if a string index removal is attempted. Moved condition higher up
-rw-r--r--Zend/zend_hash.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c
index 3ffdf6ef76..41805a2f92 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -675,6 +675,10 @@ ZEND_API int zend_hash_str_del(HashTable *ht, const char *str, int len)
IS_CONSISTENT(ht);
+ if (ht->u.flags & HASH_FLAG_PACKED) {
+ return FAILURE;
+ }
+
h = zend_inline_hash_func(str, len);
nIndex = h & ht->nTableMask;