summaryrefslogtreecommitdiff
path: root/Zend/zend_API.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2008-02-15 07:44:46 +0000
committerDmitry Stogov <dmitry@php.net>2008-02-15 07:44:46 +0000
commitf29c6b45a8ea3198245c03eaab174780c56b5332 (patch)
tree102a45c0b6c1ae166ac8751e4093e5c9d5eb5c03 /Zend/zend_API.c
parent5ef434d17580ad2602c4a0dd68229f70d9d3ef83 (diff)
downloadphp-git-f29c6b45a8ea3198245c03eaab174780c56b5332.tar.gz
MFH: Fixed bug #43128 (Very long class name causes segfault)
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r--Zend/zend_API.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index a2abd01759..43c75b3564 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -1723,11 +1723,10 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, zend_function_entr
}
}
fname_len = strlen(ptr->fname);
- lowercase_name = do_alloca(fname_len+1);
- zend_str_tolower_copy(lowercase_name, ptr->fname, fname_len);
+ lowercase_name = zend_str_tolower_dup(ptr->fname, fname_len);
if (zend_hash_add(target_function_table, lowercase_name, fname_len+1, &function, sizeof(zend_function), (void**)&reg_function) == FAILURE) {
unload=1;
- free_alloca(lowercase_name);
+ efree(lowercase_name);
break;
}
if (scope) {
@@ -1767,7 +1766,7 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, zend_function_entr
}
ptr++;
count++;
- free_alloca(lowercase_name);
+ efree(lowercase_name);
}
if (unload) { /* before unloading, display all remaining bad function in the module */
if (scope) {