diff options
| author | Dmitry Stogov <dmitry@php.net> | 2008-02-15 07:44:46 +0000 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@php.net> | 2008-02-15 07:44:46 +0000 |
| commit | f29c6b45a8ea3198245c03eaab174780c56b5332 (patch) | |
| tree | 102a45c0b6c1ae166ac8751e4093e5c9d5eb5c03 /Zend/zend_API.c | |
| parent | 5ef434d17580ad2602c4a0dd68229f70d9d3ef83 (diff) | |
| download | php-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.c | 7 |
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**)®_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) { |
