@@ -1056,6 +1056,17 @@ static const uint32_t valid_chars[8] = {
1056
1056
0xffffffff ,
1057
1057
};
1058
1058
1059
+ /* TODO Check first byte is not a digit? */
1060
+ ZEND_API bool zend_is_valid_symbol_name (zend_string * name ) {
1061
+ for (size_t i = 0 ; i < ZSTR_LEN (name ); i ++ ) {
1062
+ unsigned char c = ZSTR_VAL (name )[i ];
1063
+ if (!ZEND_BIT_TEST (valid_chars , c )) {
1064
+ return 0 ;
1065
+ }
1066
+ }
1067
+ return 1 ;
1068
+ }
1069
+
1059
1070
ZEND_API zend_function * zend_lookup_function_ex (zend_string * name , zend_string * lc_key , bool use_autoload )
1060
1071
{
1061
1072
zend_function * fbc = NULL ;
@@ -1098,12 +1109,10 @@ ZEND_API zend_function *zend_lookup_function_ex(zend_string *name, zend_string *
1098
1109
}
1099
1110
1100
1111
/* Verify function name before passing it to the autoloader. */
1101
- /*
1102
- if (!lc_key && !ZSTR_HAS_CE_CACHE(name) && !zend_is_valid_class_name(name)) {
1112
+ if (!lc_key && !zend_is_valid_symbol_name (name )) {
1103
1113
zend_string_release_ex (lc_name , 0 );
1104
1114
return NULL ;
1105
1115
}
1106
- */
1107
1116
1108
1117
if (EG (in_autoload ) == NULL ) {
1109
1118
ALLOC_HASHTABLE (EG (in_autoload ));
@@ -1138,16 +1147,6 @@ ZEND_API zend_function *zend_lookup_function(zend_string *name) /* {{{ */
1138
1147
return zend_lookup_function_ex (name , NULL , true);
1139
1148
}
1140
1149
1141
- ZEND_API bool zend_is_valid_class_name (zend_string * name ) {
1142
- for (size_t i = 0 ; i < ZSTR_LEN (name ); i ++ ) {
1143
- unsigned char c = ZSTR_VAL (name )[i ];
1144
- if (!ZEND_BIT_TEST (valid_chars , c )) {
1145
- return 0 ;
1146
- }
1147
- }
1148
- return 1 ;
1149
- }
1150
-
1151
1150
ZEND_API zend_class_entry * zend_lookup_class_ex (zend_string * name , zend_string * key , uint32_t flags ) /* {{{ */
1152
1151
{
1153
1152
zend_class_entry * ce = NULL ;
@@ -1223,7 +1222,7 @@ ZEND_API zend_class_entry *zend_lookup_class_ex(zend_string *name, zend_string *
1223
1222
}
1224
1223
1225
1224
/* Verify class name before passing it to the autoloader. */
1226
- if (!key && !ZSTR_HAS_CE_CACHE (name ) && !zend_is_valid_class_name (name )) {
1225
+ if (!key && !ZSTR_HAS_CE_CACHE (name ) && !zend_is_valid_symbol_name (name )) {
1227
1226
zend_string_release_ex (lc_name , 0 );
1228
1227
return NULL ;
1229
1228
}
0 commit comments