workarounds, I do not understand why it segfault, it should *NOT*
[apps/madmutt.git] / lib-mime / rfc1524.c
index 08090e0..fc02062 100644 (file)
@@ -169,7 +169,8 @@ static char *parse_field(char *p, char **field, char **value)
             *p++ = '\0';
           case '\0':
             m_strrtrim(*field);
-            m_strrtrim(*value);
+            if (*value)
+                m_strrtrim(*value);
             return p;
 
           case '\\':
@@ -301,7 +302,7 @@ rfc1524_mailcap_parse(BODY *a, const char *filename, const char *type,
                     ssize_t len   = m_strlen(value) + STRING;
                     char *testcmd = p_new(char, len);
 
-                    strcpy(testcmd, value);
+                    m_strcpy(testcmd, len, value);
                     rfc1524_expand_command(a, a->filename, type, testcmd, len);
                     found = !mutt_system(testcmd);
                     p_delete(&testcmd);
@@ -338,7 +339,7 @@ rfc1524_mailcap_parse(BODY *a, const char *filename, const char *type,
             rfc1524_entry_init(entry);
         }
     }                           /* while (!found && (buf = mutt_read_line ())) */
-    fclose (fp);
+    m_fclose(&fp);
 
   error:
     p_delete(&buf);
@@ -374,7 +375,7 @@ int rfc1524_mailcap_lookup (BODY * a, char *type, rfc1524_entry * entry,
     return 0;
   }
 
-  mutt_check_lookup_list (a, type, SHORT_STRING);
+  mutt_check_lookup_list (a, type, STRING);
 
   while (!found && *curr) {
     x = 0;