mirror of
https://github.com/php/php-src.git
synced 2026-04-16 20:41:18 +02:00
Add more locale length checks, due to ICU bugs.
(cherry picked from commitd3eb58332a) (cherry picked from commit87a8240b5a)
This commit is contained in:
committed by
Anatol Belski
parent
336322ce63
commit
0d9d133cd6
@@ -406,6 +406,8 @@ static void get_icu_value_src_php( char* tag_name, INTERNAL_FUNCTION_PARAMETERS)
|
||||
if(loc_name_len == 0) {
|
||||
loc_name = intl_locale_get_default();
|
||||
}
|
||||
|
||||
INTL_CHECK_LOCALE_LEN(strlen(loc_name));
|
||||
|
||||
/* Call ICU get */
|
||||
tag_value = get_icu_value_internal( loc_name , tag_name , &result ,0);
|
||||
@@ -1165,6 +1167,7 @@ PHP_FUNCTION(locale_get_all_variants)
|
||||
loc_name = intl_locale_get_default();
|
||||
}
|
||||
|
||||
INTL_CHECK_LOCALE_LEN(strlen(loc_name));
|
||||
|
||||
array_init( return_value );
|
||||
|
||||
@@ -1273,6 +1276,9 @@ PHP_FUNCTION(locale_filter_matches)
|
||||
RETURN_TRUE;
|
||||
}
|
||||
|
||||
INTL_CHECK_LOCALE_LEN(strlen(loc_range));
|
||||
INTL_CHECK_LOCALE_LEN(strlen(lang_tag));
|
||||
|
||||
if( boolCanonical ){
|
||||
/* canonicalize loc_range */
|
||||
can_loc_range=get_icu_value_internal( loc_range , LOC_CANONICALIZE_TAG , &result , 0);
|
||||
@@ -1554,6 +1560,8 @@ PHP_FUNCTION(locale_lookup)
|
||||
|
||||
hash_arr = Z_ARRVAL_P(arr);
|
||||
|
||||
INTL_CHECK_LOCALE_LEN(strlen(loc_range));
|
||||
|
||||
if( !hash_arr || zend_hash_num_elements( hash_arr ) == 0 ) {
|
||||
RETURN_EMPTY_STRING();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user