]> granicus.if.org Git - php/commitdiff
Fixed bug #76958
authorNikita Popov <nikita.ppv@gmail.com>
Tue, 2 Oct 2018 14:13:51 +0000 (16:13 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Tue, 2 Oct 2018 14:13:51 +0000 (16:13 +0200)
NEWS
ext/mbstring/libmbfl/filters/mbfilter_utf7imap.c
ext/mbstring/tests/bug76958.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 906b6a67e8330beb03e890b3331c38d1ed58f43b..694e87930fe06acba8ef056f95cae3c89f16bd30 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,9 @@ PHP                                                                        NEWS
   . Fixed bug #72635 (Undefined class used by class constant in constexpr
     generates fatal error). (Nikita)
 
+- Mbstring:
+  . Fixed bug #76958 (Broken UTF7-IMAP conversion). (Nikita)
+
 27 Sep 2018, PHP 7.3.0RC2
 
 - CURL:
index 72c772b0725893df7bdda2697341f3dd676dc836..d95c5dbaa9b304ef370114ec8a36c29f2bbd4470 100644 (file)
@@ -40,7 +40,9 @@ const mbfl_encoding mbfl_encoding_utf7imap = {
        NULL,
        NULL,
        NULL,
-       MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE
+       MBFL_ENCTYPE_MBCS | MBFL_ENCTYPE_SHFTCODE,
+       &vtbl_utf7imap_wchar,
+       &vtbl_wchar_utf7imap
 };
 
 const struct mbfl_convert_vtbl vtbl_utf7imap_wchar = {
diff --git a/ext/mbstring/tests/bug76958.phpt b/ext/mbstring/tests/bug76958.phpt
new file mode 100644 (file)
index 0000000..a7d6112
--- /dev/null
@@ -0,0 +1,14 @@
+--TEST--
+Bug #76958: Broken UTF7-IMAP conversion
+--FILE--
+<?php
+
+$str = '&BCAEMARBBEEESwQ7BDoEOA-';
+echo mb_convert_encoding($str, 'UTF-8', 'UTF7-IMAP') . "\n";
+$str = 'Рассылки';
+echo mb_convert_encoding($str, 'UTF7-IMAP', 'UTF-8') . "\n";
+
+?>
+--EXPECT--
+Рассылки
+&BCAEMARBBEEESwQ7BDoEOA-