Increase the char limit for considering a header as "secure"
[modest] / src / modest-tny-msg.c
index 82d257f..c60af10 100644 (file)
@@ -343,12 +343,19 @@ add_attachments (TnyMimePart *part, GList *attachments_list, gboolean add_inline
                                                                       "inline");
                                } else {
                                        const gchar *filename;
+
                                        filename = tny_mime_part_get_filename (old_attachment);
-                                       if (filename)
-                                               tny_mime_part_set_filename (attachment_part, filename);
-                                       else
+                                       if (filename) {
+                                               /* If the mime part has a filename do not set it again
+                                                  because Camel won't replace the old one. Instead it
+                                                  will append the filename to the old one and that will
+                                                  mislead email clients */
+                                               if (!tny_mime_part_get_filename (attachment_part))
+                                                       tny_mime_part_set_filename (attachment_part, filename);
+                                       } else {
                                                tny_mime_part_set_header_pair (attachment_part, "Content-Disposition",
                                                                               "attachment");
+                                       }
                                }
                                if (!TNY_IS_MSG (old_attachment))  {
                                        tny_mime_part_set_transfer_encoding (TNY_MIME_PART (attachment_part), "base64");
@@ -991,12 +998,16 @@ get_new_to (TnyMsg *msg, TnyHeader *header, const gchar* from,
        }
 
        /* Prevent DoS attacks caused by malformed emails */
-       if (old_from)
-               old_from = modest_text_utils_get_secure_header (old_from,
-                                                               from_header);
-       if (old_reply_to)
-               old_reply_to = modest_text_utils_get_secure_header (old_reply_to,
-                                                                   reply_header);
+       if (old_from) {
+               gchar *tmp = old_from;
+               old_from = modest_text_utils_get_secure_header ((const gchar *) tmp, from_header);
+               g_free (tmp);
+       }
+       if (old_reply_to) {
+               gchar *tmp = old_reply_to;
+               old_reply_to = modest_text_utils_get_secure_header ((const gchar *) tmp, reply_header);
+               g_free (tmp);
+       }
 
        /* for mailing lists, use both Reply-To and From if we did a
         * 'Reply All:'
@@ -1369,6 +1380,15 @@ modest_tny_msg_header_get_all_recipients_list (TnyHeader *header)
        recipients = modest_text_utils_split_addresses_list (after_remove);
        g_free (after_remove);
 
+       if (from)
+               g_free (from);
+       if (to)
+               g_free (to);
+       if (cc)
+               g_free (cc);
+       if (bcc)
+               g_free (bcc);
+
        return recipients;
 }