From 05d168013a2be5e85c43f0d6c92aeab899e7952b Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 19 Jan 2021 15:20:01 +0100 Subject: Fixed bug #80644: ResourceBundle::get() doesn't reset error state --- ext/intl/resourcebundle/resourcebundle_class.c | 3 ++- ext/intl/tests/resourcebundle_individual.phpt | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'ext/intl') diff --git a/ext/intl/resourcebundle/resourcebundle_class.c b/ext/intl/resourcebundle/resourcebundle_class.c index 98a33b9284..fd763dcf37 100644 --- a/ext/intl/resourcebundle/resourcebundle_class.c +++ b/ext/intl/resourcebundle/resourcebundle_class.c @@ -171,8 +171,9 @@ static void resourcebundle_array_fetch(zend_object *object, zval *offset, zval * char *pbuf; ResourceBundle_object *rb; - intl_error_reset( NULL ); rb = php_intl_resourcebundle_fetch_object(object); + intl_error_reset(NULL); + intl_error_reset(INTL_DATA_ERROR_P(rb)); if(Z_TYPE_P(offset) == IS_LONG) { is_numeric = 1; diff --git a/ext/intl/tests/resourcebundle_individual.phpt b/ext/intl/tests/resourcebundle_individual.phpt index 46ce239e4d..46481dc0d6 100644 --- a/ext/intl/tests/resourcebundle_individual.phpt +++ b/ext/intl/tests/resourcebundle_individual.phpt @@ -28,6 +28,10 @@ function ut_main() { $t = ut_resourcebundle_get( $r, 'nonexisting' ); $str_res .= debug( $t ); + // Make sure accessing existing after non-existing works. + $t = ut_resourcebundle_get( $r, 'teststring' ); + $str_res .= debug( $t ); + return $str_res; } include_once( 'ut_common.inc' ); @@ -55,3 +59,5 @@ testtable: 3 testarray: string 3 NULL 2: Cannot load resource element 'nonexisting': U_MISSING_RESOURCE_ERROR +Hello World! + 0: U_ZERO_ERROR -- cgit v1.2.1