diff --git a/CHANGELOG b/CHANGELOG index b2cb4cdcf..84d4f9ae5 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,6 +7,7 @@ CHANGELOG Roundcube Webmail - Fix PHP fatal error when visiting Vacation interface and there's no sieve script yet - Fix setting max packet size for DB caches and check packet size also in shared cache - Fix needless security warning on BMP attachments display (#1490282) +- Fix handling of some improper constructs in format=flowed text as per the RFC3676[4.5] (#1490284) RELEASE 1.1.0 ------------- diff --git a/program/lib/Roundcube/rcube_mime.php b/program/lib/Roundcube/rcube_mime.php index 3f2fcc330..e9cab6107 100644 --- a/program/lib/Roundcube/rcube_mime.php +++ b/program/lib/Roundcube/rcube_mime.php @@ -520,7 +520,7 @@ class rcube_mime // remove space-stuffing $line = preg_replace('/^ /', '', $line); - if (isset($text[$last]) && $line + if (isset($text[$last]) && $line && !$q_level && $text[$last] != '-- ' && $text[$last][strlen($text[$last])-1] == ' ' ) { diff --git a/tests/Framework/Mime.php b/tests/Framework/Mime.php index 43773f1a5..4cf84cbb0 100644 --- a/tests/Framework/Mime.php +++ b/tests/Framework/Mime.php @@ -155,6 +155,21 @@ class Framework_Mime extends PHPUnit_Framework_TestCase $this->assertEquals($unfolded, rcube_mime::unfold_flowed($flowed), "Test correct unfolding of quoted lines"); } + /** + * Test format=flowed unfolding (#1490284) + */ + function test_unfold_flowed2() + { + $flowed = "> culpa qui officia deserunt mollit anim id est laborum.\r\n" + ."> \r\n" + ."Sed ut perspiciatis unde omnis iste natus error \r\nsit voluptatem"; + $unfolded = "> culpa qui officia deserunt mollit anim id est laborum.\r\n" + ."> \r\n" + ."Sed ut perspiciatis unde omnis iste natus error sit voluptatem"; + + $this->assertEquals($unfolded, rcube_mime::unfold_flowed($flowed), "Test correct unfolding of quoted lines [2]"); + } + /** * Test wordwrap() */