Skip to content

Commit 87b4030

Browse files
committed
Merge branch 'PHP-8.3' into PHP-8.4
2 parents 279589c + e1c4a0a commit 87b4030

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

ext/intl/msgformat/msgformat_parse.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,11 @@ PHP_FUNCTION( msgfmt_parse_message )
126126
if(spattern && spattern_len) {
127127
efree(spattern);
128128
}
129-
INTL_METHOD_CHECK_STATUS(mfo, "Creating message formatter failed");
129+
INTL_METHOD_CHECK_STATUS_OR_GOTO(mfo, "Creating message formatter failed", clean);
130130

131131
msgfmt_do_parse(mfo, source, src_len, return_value);
132132

133+
clean:
133134
/* drop the temporary formatter */
134135
msgformat_data_free(&mfo->mf_data);
135136
}

ext/intl/tests/gh19261.phpt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
--TEST--
2+
MessageFormatter::parseMessage() with invalid locale
3+
--EXTENSIONS--
4+
intl
5+
--CREDITS--
6+
7+
--FILE--
8+
<?php
9+
10+
$locale = 'root';
11+
$fmt = '{0,whatever} would not work!';
12+
13+
$str = 'failing';
14+
15+
$m = MessageFormatter::parseMessage($locale, $fmt, $str);
16+
var_dump($m);
17+
var_dump(intl_get_error_message());
18+
19+
$m = msgfmt_parse_message($locale, $fmt, $str);
20+
var_dump($m);
21+
var_dump(intl_get_error_message());
22+
23+
?>
24+
--EXPECT--
25+
bool(false)
26+
string(59) "Creating message formatter failed: U_ILLEGAL_ARGUMENT_ERROR"
27+
bool(false)
28+
string(59) "Creating message formatter failed: U_ILLEGAL_ARGUMENT_ERROR"

0 commit comments

Comments
 (0)