]> granicus.if.org Git - mutt/commitdiff
Fix a few memory leaks for idna conversion.
authorKevin McCarthy <kevin@8t8.us>
Tue, 6 Nov 2018 19:02:01 +0000 (11:02 -0800)
committerKevin McCarthy <kevin@8t8.us>
Tue, 6 Nov 2018 19:02:01 +0000 (11:02 -0800)
alias.c
init.c
sendlib.c

diff --git a/alias.c b/alias.c
index 458461df597c91654cbf11175b326a695994a169..da1db06275d0a31715fd122aa85c989c03f73bfa 100644 (file)
--- a/alias.c
+++ b/alias.c
@@ -305,6 +305,7 @@ retry_name:
     if (mutt_addrlist_to_intl (new->addr, &err))
     {
       mutt_error (_("Error: '%s' is a bad IDN."), err);
+      FREE (&err);
       mutt_sleep (2);
       continue;
     }
diff --git a/init.c b/init.c
index 1db9a54912d8d29aed124cf0edc924af63405de3..e5c78961cbe4148897d5837beb6f9396e1aaaf65 100644 (file)
--- a/init.c
+++ b/init.c
@@ -1077,9 +1077,11 @@ static int parse_group (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err)
          if ((addr = mutt_parse_adrlist (NULL, buf->data)) == NULL)
            goto bail;
          if (mutt_addrlist_to_intl (addr, &estr))
-         { 
+         {
            snprintf (err->data, err->dsize, _("%sgroup: warning: bad IDN '%s'.\n"),
                      data == 1 ? "un" : "", estr);
+            FREE (&estr);
+            rfc822_free_address (&addr);
            goto bail;
          }
          if (data == MUTT_GROUP)
@@ -1543,6 +1545,7 @@ static int parse_alias (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err)
   {
     snprintf (err->data, err->dsize, _("Warning: Bad IDN '%s' in alias '%s'.\n"),
              estr, tmp->name);
+    FREE (&estr);
     goto bail;
   }
 
index b1e9ea547df83aca406ea91880b749bf9f552b70..2128c94efaf0dae0c2e49880e40219284a65e0bb 100644 (file)
--- a/sendlib.c
+++ b/sendlib.c
@@ -2650,7 +2650,7 @@ int mutt_bounce_message (FILE *fp, HEADER *h, ADDRESS *to)
   const char *fqdn = mutt_fqdn (1);
   char resent_from[STRING];
   int ret;
-  char *err;
+  char *err = NULL;
 
   resent_from[0] = '\0';
   from = mutt_default_from ();
@@ -2673,6 +2673,7 @@ int mutt_bounce_message (FILE *fp, HEADER *h, ADDRESS *to)
   {
     mutt_error (_("Bad IDN %s while preparing resent-from."),
                err);
+    FREE (&err);
     rfc822_free_address (&from);
     return -1;
   }