summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2015-02-19 16:39:48 +0100
committerAleksander Machniak <alec@alec.pl>2015-02-19 16:39:48 +0100
commit13e0a6556ffa9e0b3257f08d78042a8133055ea3 (patch)
tree853ff3d858ba7a0049f310dcf24094df3253ecbe
parent4a2a62de30eae35398dc1e6fcca99c469dd218e6 (diff)
Fix handling of some improper constructs in format=flowed text as per the RFC3676[4.5] (#1490284)
-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()