Aleksander Machniak
2016-02-07 4c0cb96a4857860bb0249da0541dc19c1ee93a9e
Enigma: Fix missing html/plain switch on multipart/signed messages (#1490649)
2 files modified
9 ■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_message.php 8 ●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
- Enigma: Fix missing html/plain switch on multipart/signed messages (#1490649)
- Enigma: Disable format=flowed for signed plain text messages (#1490646)
- Enigma: Fix handling of encrypted + signed messages (#1490632)
- Enigma: Fix invalid boundary use in signed messages structure
program/lib/Roundcube/rcube_message.php
@@ -339,6 +339,7 @@
                $level = explode('.', $part->mime_id);
                $depth = count($level);
                $last  = '';
                // Check if the part belongs to higher-level's multipart part
                // this can be alternative/related/signed/encrypted or mixed
@@ -348,9 +349,12 @@
                        return true;
                    }
                    $parent = $this->mime_parts[join('.', $level)];
                    $parent    = $this->mime_parts[join('.', $level)];
                    $max_delta = $depth - (1 + ($last == 'multipart/alternative' ? 1 : 0));
                    $last      = $parent->mimetype;
                    if (!preg_match('/^multipart\/(alternative|related|signed|encrypted|mixed)$/', $parent->mimetype)
                        || ($parent->mimetype == 'multipart/mixed' && $parent_depth < $depth - 1)) {
                        || ($parent->mimetype == 'multipart/mixed' && $parent_depth < $max_delta)) {
                        continue 2;
                    }
                }