summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-12-21 14:49:00 +0100
committerAleksander Machniak <alec@alec.pl>2013-12-21 14:49:00 +0100
commit54029ea959b5f59447e3f0a01a453fd5fe0ba8fa (patch)
treeb8c0bb5864210064407ecd94ed77cd4fd617af5e
parent5224a6b39423c70da844638f09fde423944578a2 (diff)
Fix broken text/* attachments when forwarding/editing a message (#1489426)
-rw-r--r--CHANGELOG1
-rw-r--r--program/lib/Roundcube/rcube_imap.php2
-rw-r--r--program/steps/mail/compose.inc4
3 files changed, 4 insertions, 3 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 967e2a381..b1eca46f2 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Fix broken text/* attachments when forwarding/editing a message (#1489426)
- Improved minified files handling, added css minification (#1486988)
- Fix handling of X-Forwarded-For header with multiple addresses (#1489481)
- Fix border issue on folders list in classic skin (#1489473)
diff --git a/program/lib/Roundcube/rcube_imap.php b/program/lib/Roundcube/rcube_imap.php
index dc5305808..f1363caf7 100644
--- a/program/lib/Roundcube/rcube_imap.php
+++ b/program/lib/Roundcube/rcube_imap.php
@@ -2121,7 +2121,7 @@ class rcube_imap extends rcube_storage
// convert charset (if text or message part)
if ($body && preg_match('/^(text|message)$/', $o_part->ctype_primary)) {
// Remove NULL characters if any (#1486189)
- if (strpos($body, "\x00") !== false) {
+ if ($formatted && strpos($body, "\x00") !== false) {
$body = str_replace("\x00", '', $body);
}
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index f75b219ff..aee31bb21 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -1286,12 +1286,12 @@ function rcmail_save_attachment(&$message, $pid)
$temp_dir = unslashify($rcmail->config->get('temp_dir'));
$path = tempnam($temp_dir, 'rcmAttmnt');
if ($fp = fopen($path, 'w')) {
- $message->get_part_content($pid, $fp);
+ $message->get_part_content($pid, $fp, true, 0, false);
fclose($fp);
} else
return false;
} else {
- $data = $message->get_part_content($pid);
+ $data = $message->get_part_content($pid, null, true, 0, false);
}
$mimetype = $part->ctype_primary . '/' . $part->ctype_secondary;