com php-src: Add more locale length checks, due to ICU bugs.: ext/intl/locale/locale_methods.c

From: Date: Wed, 12 Oct 2016 22:30:49 +0000
Subject: com php-src: Add more locale length checks, due to ICU bugs.: ext/intl/locale/locale_methods.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-94995@lists.php.net to get a copy of this message
Commit: 6329a1eb7816450a6de6f326580a5dcd71bd9a73 Author: Stanislav Malyshev <stas@php.net> Tue, 4 Oct 2016 21:28:40 -0700 Committer: Anatol Belski <ab@php.net> Thu, 13 Oct 2016 00:30:49 +0200 Parents: 512d3c679d6300765e2c293feb614bae2195d216 Branches: PHP-7.0.12 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=6329a1eb7816450a6de6f326580a5dcd71bd9a73 Log: Add more locale length checks, due to ICU bugs. (cherry picked from commit d3eb58332af433982f1e2ae9095fb087974a95f2) (cherry picked from commit 87a8240b5adc730153e6df54f33195aee1325e6f) Changed paths: M ext/intl/locale/locale_methods.c Diff: diff --git a/ext/intl/locale/locale_methods.c b/ext/intl/locale/locale_methods.c index 32a70d2..e2caacf 100644 --- a/ext/intl/locale/locale_methods.c +++ b/ext/intl/locale/locale_methods.c @@ -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); @@ -1169,6 +1171,7 @@ PHP_FUNCTION(locale_get_all_variants) loc_name = intl_locale_get_default(); } + INTL_CHECK_LOCALE_LEN(strlen(loc_name)); array_init( return_value ); @@ -1277,6 +1280,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); @@ -1558,6 +1564,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(); }

« previous php.cvs (#94995) next »