Fix content-type detection for headerless mails
authorAndre Heinecke <aheinecke@gnupg.org>
Wed, 27 Mar 2019 09:53:42 +0000 (10:53 +0100)
committerAndre Heinecke <aheinecke@gnupg.org>
Wed, 27 Mar 2019 09:53:42 +0000 (10:53 +0100)
* src/mapihelp.cpp (mapi_get_message_content_type):
Check first attachment if mail has no headers.

--
Yep that happens. I could reproduce it by looking at
sent mails in a local data file. This is very likely
the cause for:

GnuPG-Bug-Id: T3935

src/mapihelp.cpp

index eaa8b0c..1b13076 100644 (file)
@@ -3213,13 +3213,19 @@ mapi_get_message_content_type (LPMESSAGE message,
   if (r_smtype)
     *r_smtype = NULL;
 
-  const std::string hdrStr = mapi_get_header (message);
+  std::string hdrStr = mapi_get_header (message);
   if (hdrStr.empty())
     {
 
-      log_error ("%s:%s: failed to get headers",
+      log_debug  ("%s:%s: failed to get headers. Looking at first attach",
                  SRCNAME, __func__);
-      TRETURN NULL;
+      hdrStr = mapi_get_first_attach_data (message);
+      if (hdrStr.empty())
+        {
+          log_error ("%s:%s: failed to get headers. And attachment.",
+                     SRCNAME, __func__);
+          TRETURN NULL;
+        }
     }
 
   rfc822parse_t msg = parse_header_data (hdrStr, isWks);