summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2003-09-15 20:20:14 +0000
committerMarcus Boerger <helly@php.net>2003-09-15 20:20:14 +0000
commit16a816b92c15f25dae8402110ba0193a4bb5bb9c (patch)
treeb18191b50be634e497df568dea835d5e1ac2af50
parente76de52de731d7bb65d1a388713efae1a09db0ab (diff)
downloadphp-git-16a816b92c15f25dae8402110ba0193a4bb5bb9c.tar.gz
Bugfix #25547
-rw-r--r--Zend/zend_execute.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 6d0111f936..5cf85d3478 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -763,6 +763,8 @@ fetch_string_dim:
retval = &EG(uninitialized_zval_ptr);
break;
case BP_VAR_RW:
+ offset_key = estrndup(offset_key, offset_key_length);
+ /* calling an user error handler may free zval dim, so we copy the string */
zend_error(E_NOTICE,"Undefined index: %s", offset_key);
/* break missing intentionally */
case BP_VAR_W: {
@@ -771,6 +773,9 @@ fetch_string_dim:
new_zval->refcount++;
zend_symtable_update(ht, offset_key, offset_key_length+1, &new_zval, sizeof(zval *), (void **) &retval);
}
+ if (type == BP_VAR_RW) {
+ efree(offset_key);
+ }
break;
}
}