Skip to content

Commit 17f7250

Browse files
committed
Merge branch 'PHP-8.2'
* PHP-8.2: mb_encode_mimeheader does not crash if provided encoding has no MIME name set
2 parents 368febb + d60833b commit 17f7250

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

ext/mbstring/mbstring.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3232,6 +3232,9 @@ PHP_FUNCTION(mb_encode_mimeheader)
32323232
charset = php_mb_get_encoding(charset_name, 2);
32333233
if (!charset) {
32343234
RETURN_THROWS();
3235+
} else if (charset->mime_name == NULL || charset->mime_name[0] == '\0') {
3236+
zend_argument_value_error(2, "\"%s\" cannot be used for MIME header encoding", ZSTR_VAL(charset_name));
3237+
RETURN_THROWS();
32353238
}
32363239
} else {
32373240
const mbfl_language *lang = mbfl_no2language(MBSTRG(language));
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
--TEST--
2+
Test mb_encode_mimeheader() function : text encoding with no MIME name
3+
--EXTENSIONS--
4+
mbstring
5+
--SKIPIF--
6+
<?php
7+
function_exists('mb_encode_mimeheader') or die("skip mb_encode_mimeheader() is not available in this build");
8+
?>
9+
--FILE--
10+
<?php
11+
try {
12+
var_dump(mb_encode_mimeheader("abc", "UTF7-IMAP", "Q"));
13+
} catch (\ValueError $e) {
14+
echo $e->getMessage() . \PHP_EOL;
15+
}
16+
17+
echo "Done\n";
18+
?>
19+
--EXPECT--
20+
mb_encode_mimeheader(): Argument #2 ($charset) "UTF7-IMAP" cannot be used for MIME header encoding
21+
Done

0 commit comments

Comments
 (0)