summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_hash.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c
index 8bcfe946e0..dc5b4d2a7a 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -1029,8 +1029,10 @@ ZEND_API int zend_hash_get_current_key_ex(HashTable *ht, char **str_index, ulong
if (p) {
if (p->nKeyLength) {
- *str_index = (char *) pemalloc(p->nKeyLength, ht->persistent);
- memcpy(*str_index, p->arKey, p->nKeyLength);
+ *str_index = (char *) estrndup(p->arKey, p->nKeyLength);
+ if (ht->persistent) {
+ persist_alloc(*str_index);
+ }
if (str_length) {
*str_length = p->nKeyLength;
}