From 556d288754c13141b42f0a4dd4889078265c6f45 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sun, 25 Jan 2015 11:39:59 -0500
Subject: [PATCH] Fix false warning when opening attached text/plain files (#1490241)

---
 CHANGELOG                  |    1 +
 program/steps/mail/get.inc |   28 ++++++++++++++--------------
 2 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 53c2404..17abd14 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -15,6 +15,7 @@
 - Fix bug where empty fieldmap config entries caused empty results of ldap search (#1490229)
 - Fix bug where drafts list wasn't refreshed after draft message was sent from another window (#1490238)
 - Fix keyboard navigation and css in datepicker widget across many Firefox versions
+- Fix false warning when opening attached text/plain files (#1490241)
 
 RELEASE 1.1-rc
 --------------
diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc
index 150737a..256af52 100644
--- a/program/steps/mail/get.inc
+++ b/program/steps/mail/get.inc
@@ -150,22 +150,22 @@
 
                 // accept text/plain with any extension
                 if ($real_mimetype == 'text/plain' && $real_mimetype == $mimetype) {
-                    $file_extension = 'txt';
-                }
-
-                // ignore differences in text/* mimetypes. Filetype detection isn't very reliable here
-                if ($real_ctype_primary == 'text' && strpos($mimetype, $real_ctype_primary) === 0) {
-                    $real_mimetype = $mimetype;
-                }
-
-                // get valid file extensions
-                $extensions      = rcube_mime::get_mime_extensions($real_mimetype);
-                $valid_extension = (!$file_extension || in_array($file_extension, (array)$extensions));
-
-                // ignore filename extension if mimeclass matches (#1489029)
-                if (!empty($_REQUEST['_mimeclass']) && $real_ctype_primary == $_REQUEST['_mimeclass']) {
                     $valid_extension = true;
                 }
+                // ignore differences in text/* mimetypes. Filetype detection isn't very reliable here
+                else if ($real_ctype_primary == 'text' && strpos($mimetype, $real_ctype_primary) === 0) {
+                    $real_mimetype   = $mimetype;
+                    $valid_extension = true;
+                }
+                // ignore filename extension if mimeclass matches (#1489029)
+                else if (!empty($_REQUEST['_mimeclass']) && $real_ctype_primary == $_REQUEST['_mimeclass']) {
+                    $valid_extension = true;
+                }
+                else {
+                    // get valid file extensions
+                    $extensions      = rcube_mime::get_mime_extensions($real_mimetype);
+                    $valid_extension = (!$file_extension || in_array($file_extension, (array)$extensions));
+                }
 
                 // fix mimetype for images wrongly declared as octet-stream
                 if ($mimetype == 'application/octet-stream' && strpos($real_mimetype, 'image/') === 0 && $valid_extension) {

--
Gitblit v1.9.1