summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2018-04-12 18:25:58 +0200
committerAnatol Belski <ab@php.net>2018-04-12 18:25:58 +0200
commit9f4905fb0dbe832c50bed85c4abd2ffcebea86e0 (patch)
treee6fcd92c335241018d2457dc08ed0761a52994fb
parentab68d9005741fd2178cb5218db93022a7c0c48ac (diff)
parent5fe6d2134b45818222248b8e20694f407bb52d63 (diff)
downloadphp-git-9f4905fb0dbe832c50bed85c4abd2ffcebea86e0.tar.gz
Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1: Fix memory leak
-rw-r--r--ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp1
-rw-r--r--ext/intl/tests/rbbiter___construct_basic.phpt11
2 files changed, 11 insertions, 1 deletions
diff --git a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
index 8ab8194b17..fbc3fe6f5c 100644
--- a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
+++ b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
@@ -79,6 +79,7 @@ static void _php_intlrbbi_constructor_body(INTERNAL_FUNCTION_PARAMETERS)
if (U_FAILURE(status)) {
intl_error_set(NULL, status, "rbbi_create_instance: unable to "
"create instance from compiled rules", 0);
+ delete rbbi;
return;
}
#else
diff --git a/ext/intl/tests/rbbiter___construct_basic.phpt b/ext/intl/tests/rbbiter___construct_basic.phpt
index 6fb584fdee..31edcd2c83 100644
--- a/ext/intl/tests/rbbiter___construct_basic.phpt
+++ b/ext/intl/tests/rbbiter___construct_basic.phpt
@@ -24,8 +24,17 @@ $rules = <<<RULES
RULES;
$rbbi = new IntlRuleBasedBreakIterator($rules);
var_dump(get_class($rbbi));
+
+try {
+ $obj = new IntlRuleBasedBreakIterator('[\p{Letter}\uFFFD]+;[:number:]+', 'aoeu');
+} catch (IntlException $e) {
+ var_dump(intl_get_error_code(), intl_get_error_message());
+}
+
?>
==DONE==
--EXPECT--
string(26) "IntlRuleBasedBreakIterator"
-==DONE== \ No newline at end of file
+int(1)
+string(93) "rbbi_create_instance: unable to create instance from compiled rules: U_ILLEGAL_ARGUMENT_ERROR"
+==DONE==