diff options
| author | Dmitry Stogov <dmitry@php.net> | 2007-11-22 13:27:13 +0000 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@php.net> | 2007-11-22 13:27:13 +0000 |
| commit | 648fbe9d5838073154f3737829d5298502184343 (patch) | |
| tree | bd21fcbb0af89d62032a842dc4e6f29518fa3cdf /Zend/zend_API.c | |
| parent | 1836daf7f9f3ab088a65fd8c0b8c9421d6550be5 (diff) | |
| download | php-git-648fbe9d5838073154f3737829d5298502184343.tar.gz | |
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 fbf73e8e76..056b3b6879 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -1863,11 +1863,10 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio } } 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) { @@ -1909,7 +1908,7 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio } ptr++; count++; - free_alloca(lowercase_name); + efree(lowercase_name); } if (unload) { /* before unloading, display all remaining bad function in the module */ if (scope) { |
