From 5a2d2a6f75b115183459997cc2aa787d9a085fe8 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Mon, 14 Oct 2013 08:53:34 +0200 Subject: Fix HTML part detection when encapsulated inside multipart/signed (#1489372) --- CHANGELOG | 1 + program/lib/Roundcube/rcube_message.php | 7 +++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index e14f932a5..b6c20e05b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Fix HTML part detection when encapsulated inside multipart/signed (#1489372) - Fix text wrapping issue with long unwrappable lines (#1489371) - Add spellchecker backend for the After the Deadline service - Replace markdown-style [1] link indexes in plain text email bodies 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; } } -- cgit v1.2.3