]> granicus.if.org Git - neomutt/commitdiff
RFC2047-decode mailto header values. (closes #3879)
authorKevin McCarthy <kevin@8t8.us>
Wed, 28 Sep 2016 01:15:25 +0000 (18:15 -0700)
committerRichard Russon <rich@flatcap.org>
Sun, 2 Oct 2016 14:53:40 +0000 (15:53 +0100)
RFC 6068 specifies that the header values (with the exception of body)
may contain RFC 2047-encoded values.

url.c

diff --git a/url.c b/url.c
index d11b8d73ac40873e1033a6d0252b42a0e7ecc93b..5bbe9c4cd2f9803d0a48b066ccbc70c0bd798c19 100644 (file)
--- a/url.c
+++ b/url.c
@@ -29,6 +29,7 @@
 #include "url.h"
 
 #include "mime.h"
+#include "rfc2047.h"
 
 #include <ctype.h>
 
@@ -309,12 +310,17 @@ int url_parse_mailto (ENVELOPE *e, char **body, const char *src)
       else
       {
        char *scratch;
+        char *decoded_value;
        size_t taglen = mutt_strlen (tag);
 
-       safe_asprintf (&scratch, "%s: %s", tag, value);
+        decoded_value = safe_strdup (value);
+        rfc2047_decode (&decoded_value);
+
+       safe_asprintf (&scratch, "%s: %s", tag, decoded_value);
        scratch[taglen] = 0; /* overwrite the colon as mutt_parse_rfc822_line expects */
        value = skip_email_wsp(&scratch[taglen + 1]);
        mutt_parse_rfc822_line (e, NULL, scratch, value, 1, 0, 0, &last);
+        FREE (&decoded_value);
        FREE (&scratch);
       }
     }