summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG1
-rw-r--r--program/lib/Roundcube/rcube_mime.php2
-rw-r--r--tests/Framework/Mime.php15
3 files changed, 17 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG
index f70c0b6e9..5a3da30e9 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -8,6 +8,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
@@ -156,6 +156,21 @@ class Framework_Mime extends PHPUnit_Framework_TestCase
}
/**
+ * 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()