diff options
author | Aleksander Machniak <alec@alec.pl> | 2014-10-22 14:29:44 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2014-10-22 14:29:44 +0200 |
commit | 48ba4414b33c8982f8232b06f06d68f3213aa986 (patch) | |
tree | c36c555e1e2cca6cfe1fdd12018da05b648798b9 /program/steps/mail/compose.inc | |
parent | e2251db1d5b536f61fe7db57b96a9601465bd139 (diff) |
Fix download of attachments that are part of TNEF message (#1490091)
Rcube_message_part::body content should never be modified by code out of the rcube_message.
Added convenient rcube_message::get_part_body() method, making rcube_message::get_part_content() deprecated.
Diffstat (limited to 'program/steps/mail/compose.inc')
-rw-r--r-- | program/steps/mail/compose.inc | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 1770a1bcb..2b1ca4de6 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -802,22 +802,14 @@ function rcmail_compose_part_body($part, $isHtml = false) return ''; } - if (empty($part->ctype_parameters) || empty($part->ctype_parameters['charset'])) { - $part->ctype_parameters['charset'] = $MESSAGE->headers->charset; - } - // fetch part if not available - if (!isset($part->body)) { - $part->body = $MESSAGE->get_part_content($part->mime_id); - } + $body = $MESSAGE->get_part_body($part->mime_id, true); // message is cached but not exists (#1485443), or other error - if ($part->body === false) { + if ($body === false) { return ''; } - $body = $part->body; - if ($isHtml) { if ($part->ctype_secondary == 'html') { } @@ -1363,7 +1355,7 @@ function rcmail_save_attachment(&$message, $pid) $path = tempnam($temp_dir, 'rcmAttmnt'); if ($fp = fopen($path, 'w')) { - $message->get_part_content($pid, $fp, true, 0, false); + $message->get_part_body($pid, false, 0, $fp); fclose($fp); } else { @@ -1371,7 +1363,7 @@ function rcmail_save_attachment(&$message, $pid) } } else { - $data = $message->get_part_content($pid, null, true, 0, false); + $data = $message->get_part_body($pid); } $mimetype = $part->ctype_primary . '/' . $part->ctype_secondary; |