From ca85a8e32c303d5c3d74f10aa928423e144db45d Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Thu, 19 Feb 2015 10:43:06 -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 b2cb4cd..84d4f9a 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -7,6 +7,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