summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_reflection_api.c7
-rw-r--r--ext/reflection/php_reflection.c7
2 files changed, 10 insertions, 4 deletions
diff --git a/Zend/zend_reflection_api.c b/Zend/zend_reflection_api.c
index f2559609ed..a62b49bd00 100644
--- a/Zend/zend_reflection_api.c
+++ b/Zend/zend_reflection_api.c
@@ -1416,12 +1416,15 @@ ZEND_METHOD(reflection_parameter, getClass)
RETURN_NULL();
} else {
zend_class_entry **pce;
-
- if (zend_hash_find(EG(class_table), param->arg_info->class_name, param->arg_info->class_name_len + 1, (void **) &pce) == FAILURE) {
+ char *lcname = do_alloca(param->arg_info->class_name_len + 1);
+ zend_str_tolower_copy(lcname, param->arg_info->class_name, param->arg_info->class_name_len);
+ if (zend_hash_find(EG(class_table), lcname, param->arg_info->class_name_len + 1, (void **) &pce) == FAILURE) {
+ free_alloca(lcname);
zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC,
"Class %s does not exist", param->arg_info->class_name);
return;
}
+ free_alloca(lcname);
reflection_class_factory(*pce, return_value TSRMLS_CC);
}
}
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c
index f2559609ed..a62b49bd00 100644
--- a/ext/reflection/php_reflection.c
+++ b/ext/reflection/php_reflection.c
@@ -1416,12 +1416,15 @@ ZEND_METHOD(reflection_parameter, getClass)
RETURN_NULL();
} else {
zend_class_entry **pce;
-
- if (zend_hash_find(EG(class_table), param->arg_info->class_name, param->arg_info->class_name_len + 1, (void **) &pce) == FAILURE) {
+ char *lcname = do_alloca(param->arg_info->class_name_len + 1);
+ zend_str_tolower_copy(lcname, param->arg_info->class_name, param->arg_info->class_name_len);
+ if (zend_hash_find(EG(class_table), lcname, param->arg_info->class_name_len + 1, (void **) &pce) == FAILURE) {
+ free_alloca(lcname);
zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC,
"Class %s does not exist", param->arg_info->class_name);
return;
}
+ free_alloca(lcname);
reflection_class_factory(*pce, return_value TSRMLS_CC);
}
}