summaryrefslogtreecommitdiff
path: root/Zend/zend_API.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r--Zend/zend_API.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index e013d16a57..a9a10ccb8c 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -1206,7 +1206,10 @@ ZEND_API zend_class_entry *zend_register_internal_class_ex(zend_class_entry *cla
ZEND_API zend_class_entry *zend_register_internal_class(zend_class_entry *class_entry TSRMLS_DC)
{
zend_class_entry *register_class;
- char *lowercase_name = zend_strndup(class_entry->name, class_entry->name_length);
+ char *lowercase_name;
+
+ lowercase_name = do_alloca(class_entry->name_length+1);
+ memcpy(lowercase_name, class_entry->name, class_entry->name_length+1);
zend_str_tolower(lowercase_name, class_entry->name_length);
@@ -1226,7 +1229,7 @@ ZEND_API zend_class_entry *zend_register_internal_class(zend_class_entry *class_
}
zend_hash_update(CG(class_table), lowercase_name, class_entry->name_length+1, class_entry, sizeof(zend_class_entry), (void **) &register_class);
- free(lowercase_name);
+ free_alloca(lowercase_name);
return register_class;
}