Skip to content

Commit 7c1ee5a

Browse files
committed
mb_encode_mimeheader does not crash if provided encoding has no MIME name set
1 parent 7202fe1 commit 7c1ee5a

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

ext/mbstring/mbstring.c

+3
Original file line numberDiff line numberDiff line change
@@ -2848,6 +2848,9 @@ PHP_FUNCTION(mb_encode_mimeheader)
28482848
charset = php_mb_get_encoding(charset_name, 2);
28492849
if (!charset) {
28502850
RETURN_THROWS();
2851+
} else if (charset->mime_name == NULL || charset->mime_name[0] == '\0') {
2852+
zend_argument_value_error(2, "\"%s\" cannot be used for MIME header encoding", ZSTR_VAL(charset_name));
2853+
RETURN_THROWS();
28512854
}
28522855
} else {
28532856
const mbfl_language *lang = mbfl_no2language(MBSTRG(language));
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)