diff options
author | Aleksander Machniak <alec@alec.pl> | 2013-10-14 08:53:34 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2013-10-14 08:53:34 +0200 |
commit | 5a2d2a6f75b115183459997cc2aa787d9a085fe8 (patch) | |
tree | ddc4a0e71c411b1aaddaaf57c2745f71f01c500e /program | |
parent | ff6de99ae4f353f793c95208ad6407ac59a63376 (diff) |
Fix HTML part detection when encapsulated inside multipart/signed (#1489372)
Diffstat (limited to 'program')
-rw-r--r-- | program/lib/Roundcube/rcube_message.php | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/program/lib/Roundcube/rcube_message.php b/program/lib/Roundcube/rcube_message.php index 0cc0766f5..9b662a286 100644 --- a/program/lib/Roundcube/rcube_message.php +++ b/program/lib/Roundcube/rcube_message.php @@ -195,8 +195,6 @@ class rcube_message /** * Determine if the message contains a HTML part. This must to be * a real part not an attachment (or its part) - * This must to be - * a real part not an attachment (or its part) * * @param bool $enriched Enables checking for text/enriched parts too * @@ -214,14 +212,15 @@ class rcube_message $level = explode('.', $part->mime_id); - // Check if the part belongs to higher-level's alternative/related + // Check if the part belongs to higher-level's multipart part + // this can be alternative/related/signed/encrypted, but not mixed while (array_pop($level) !== null) { if (!count($level)) { return true; } $parent = $this->mime_parts[join('.', $level)]; - if ($parent->mimetype != 'multipart/alternative' && $parent->mimetype != 'multipart/related') { + if (!preg_match('/^multipart\/(alternative|related|signed|encrypted)$/', $parent->mimetype)) { continue 2; } } |