diff --git a/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.c b/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.c index 45722ce2c89..f3cbb87f2fd 100644 --- a/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.c +++ b/ext/mbstring/libmbfl/filters/mbfilter_utf7imap.c @@ -147,6 +147,9 @@ int mbfl_filt_conv_utf7imap_wchar(int c, mbfl_convert_filter *filter) * or it could be that it ended on the first half of a surrogate pair */ filter->cache = filter->status = 0; CK((*filter->output_function)(MBFL_BAD_INPUT, filter->data)); + } else { + /* Base64-encoded section properly terminated by - */ + filter->cache = filter->status = 0; } } else { /* illegal character */ filter->cache = filter->status = 0; diff --git a/ext/mbstring/tests/gh9535.phpt b/ext/mbstring/tests/gh9535.phpt index f22a473561a..9b491673731 100644 --- a/ext/mbstring/tests/gh9535.phpt +++ b/ext/mbstring/tests/gh9535.phpt @@ -5,9 +5,6 @@ mbstring --FILE-- ---EXPECTF-- -BASE64: 宛如繁 -HTML-ENTITIES: 宛如 -Quoted-Printable: %s +--EXPECT-- UTF-16: 宛如繁星般宛如 UTF-16BE: 宛如繁星般宛如 UTF-16LE: 宛如繁星般宛如 @@ -101,9 +98,6 @@ CP50220: 宛如繁星 CP50221: 宛如繁星 CP50222: 宛如繁星 -BASE64: 星のように -HTML-ENTITIES: 星の -Quoted-Printable: 星の UTF-16: 星のように月のように UTF-16BE: 星のように月のように UTF-16LE: 星のように月のように @@ -118,9 +112,6 @@ CP50220: 星のように月の CP50221: 星のように月の CP50222: 星のように月の -BASE64: %s -HTML-ENTITIES: あa& -Quoted-Printable: あa UTF-16: あaいb UTF-16BE: あaいb UTF-16LE: あaいb @@ -135,9 +126,6 @@ CP50220: あa CP50221: あa CP50222: あa -BASE64: AAAAAA -HTML-ENTITIES: AAAAAAAAAA -Quoted-Printable: AAAAAAAAAA UTF-16: AAAAA UTF-16BE: AAAAA UTF-16LE: AAAAA @@ -146,15 +134,12 @@ UTF7-IMAP: AAAAAAAAAA ISO-2022-JP-MS: AAAAAAAAAA GB18030: AAAAAAAAAA HZ: AAAAAAAAAA -ISO-2022-KR: AAAAAAAAAA +ISO-2022-KR: AAAAAA ISO-2022-JP-MOBILE#KDDI: AAAAAAAAAA CP50220: AAAAAAAAAA CP50221: AAAAAAAAAA CP50222: AAAAAAAAAA -BASE64:%s -HTML-ENTITIES: ?? -Quoted-Printable: ?? UTF-16: ? UTF-16BE: ? UTF-16LE: ? @@ -163,25 +148,22 @@ UTF7-IMAP: ?? ISO-2022-JP-MS: ?? GB18030: ?? HZ: ?? -ISO-2022-KR: ?? +ISO-2022-KR: ISO-2022-JP-MOBILE#KDDI: ?? CP50220: ?? CP50221: ?? CP50222: ?? -string(0) "" -string(2) "??" -string(2) "??" -string(2) "??" -string(2) "??" -string(2) "??" -string(2) "??" -string(2) "??" -string(2) "??" -string(2) "??" -string(2) "??" -string(2) "??" -string(2) "??" -string(2) "??" -string(2) "??" -string(2) "??" +UTF-16: ?? +UTF-16BE: ?? +UTF-16LE: ?? +UTF-7: ?? +UTF7-IMAP: ?? +ISO-2022-JP-MS: ?? +GB18030: ?? +HZ: ?? +ISO-2022-KR: +ISO-2022-JP-MOBILE#KDDI: ?? +CP50220: ?? +CP50221: ?? +CP50222: ??