From 13e0a6556ffa9e0b3257f08d78042a8133055ea3 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Thu, 19 Feb 2015 10:39:48 -0500 Subject: [PATCH] Fix handling of some improper constructs in format=flowed text as per the RFC3676[4.5] (#1490284) --- CHANGELOG | 1 + tests/Framework/Mime.php | 15 +++++++++++++++ program/lib/Roundcube/rcube_mime.php | 2 +- 3 files changed, 17 insertions(+), 1 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index f70c0b6..5a3da30 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,6 +8,7 @@ - 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 3f2fcc3..e9cab61 100644 --- a/program/lib/Roundcube/rcube_mime.php +++ b/program/lib/Roundcube/rcube_mime.php @@ -520,7 +520,7 @@ // 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 43773f1..4cf84cb 100644 --- a/tests/Framework/Mime.php +++ b/tests/Framework/Mime.php @@ -156,6 +156,21 @@ } /** + * 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() */ function test_wordwrap() -- Gitblit v1.9.1