before parsing the values, remove whitespace from Content-Type, Content-Transfer...
[claws.git] / src / procmime.c
index 4951f3ccf49bc358bf1b45b436ef1b0be5dc48d6..ca8bcc13e973fa27d330e2bf56d361fb1f17c14c 100644 (file)
@@ -1150,12 +1150,11 @@ static GHashTable *procmime_get_mime_type_table(void)
 
                exts = g_strsplit(mime_type->extension, " ", 16);
                for (i = 0; exts[i] != NULL; i++) {
-                       /* use previously dup'd key on overwriting */
-                       if (g_hash_table_lookup(table, exts[i]))
-                               key = exts[i];
-                       else
+                       /* Don't overwrite previously inserted extension */
+                       if (!g_hash_table_lookup(table, exts[i])) {
                                key = g_strdup(exts[i]);
-                       g_hash_table_insert(table, key, mime_type);
+                               g_hash_table_insert(table, key, mime_type);
+                       }
                }
                g_strfreev(exts);
        }
@@ -2016,6 +2015,7 @@ static int procmime_parse_mimepart(MimeInfo *parent,
        mimeinfo->length = length;
 
        if (content_type != NULL) {
+               remove_space(content_type);
                procmime_parse_content_type(content_type, mimeinfo);
        } else {
                mimeinfo->type = MIMETYPE_TEXT;
@@ -2030,6 +2030,7 @@ static int procmime_parse_mimepart(MimeInfo *parent,
        }
 
        if (content_encoding != NULL) {
+               remove_space(content_encoding);
                procmime_parse_content_encoding(content_encoding, mimeinfo);
        } else {
                mimeinfo->encoding_type = ENC_UNKNOWN;
@@ -2051,6 +2052,7 @@ static int procmime_parse_mimepart(MimeInfo *parent,
                mimeinfo->location = NULL;
 
        if (content_disposition != NULL) 
+               remove_space(content_disposition);
                procmime_parse_content_disposition(content_disposition, mimeinfo);
        else
                mimeinfo->disposition = DISPOSITIONTYPE_UNKNOWN;