diff options
author | Aleksander Machniak <alec@alec.pl> | 2013-07-29 11:51:03 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2013-07-29 11:51:03 +0200 |
commit | d59a8d29d6ae877e9f56a0e3fe3d1068661a9473 (patch) | |
tree | 8b6249c4ad4bd39f740c798b356c4e9171bafbdd /program/steps/mail | |
parent | 1c51d16eb3c564702597b86e9ea40f2791052a7c (diff) |
Validate all text attachments not only text/plain. This fixes invalid
warning message for a case when pdf attachment is defined as text/html.
See #1489267.
Diffstat (limited to 'program/steps/mail')
-rw-r--r-- | program/steps/mail/get.inc | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc index a27e788a3..3334caa8b 100644 --- a/program/steps/mail/get.inc +++ b/program/steps/mail/get.inc @@ -134,7 +134,7 @@ else if (strlen($part_id)) { $valid = $file_extension && in_array($file_extension, (array)$extensions) || !empty($_REQUEST['_mimeclass']); // 2. detect the real mimetype of the attachment part and compare it with the stated mimetype and filename extension - if ($valid || !$file_extension || $mimetype == 'application/octet-stream' || $mimetype == 'text/plain') { + if ($valid || !$file_extension || $mimetype == 'application/octet-stream' || stripos($mimetype, 'text/') === 0) { if ($part->body) // part body is already loaded $body = $part->body; else if ($part->size && $part->size < 1024*1024) // load the entire part if it's small enough @@ -189,8 +189,8 @@ else if (strlen($part_id)) { rcube_label(array( 'name' => 'attachmentvalidationerror', 'vars' => array( - 'expected' => $mimetype . ($file_extension ? "(.$file_extension)" : ''), - 'detected' => $real_mimetype . ($extensions[0] ? "(.$extensions[0])" : ''), + 'expected' => $mimetype . ($file_extension ? " (.$file_extension)" : ''), + 'detected' => $real_mimetype . ($extensions[0] ? " (.$extensions[0])" : ''), ) )) . html::p(array('class' => 'rcmail-inline-buttons'), @@ -233,7 +233,6 @@ else if (strlen($part_id)) { header("Content-Transfer-Encoding: binary"); } - // deliver part content if ($ctype_primary == 'text' && $ctype_secondary == 'html' && empty($plugin['download'])) { // Check if we have enough memory to handle the message in it |