]> granicus.if.org Git - mutt/commitdiff
Fix BODY->d_filename memory leaks.
authorKevin McCarthy <kevin@8t8.us>
Wed, 13 Jul 2016 01:04:28 +0000 (18:04 -0700)
committerKevin McCarthy <kevin@8t8.us>
Wed, 13 Jul 2016 01:04:28 +0000 (18:04 -0700)
mutt_message_to_7bit() and transform_to_7bit() were overwriting
d_filename without freeing the previous value.

mutt_free_body() was not freeing the d_filename pointer.

muttlib.c
sendlib.c

index 7cf062574fcc7aca3da31e0329ee939513814908..209c7ab90306e25a09ee8a9b48a9ac9471b59b14 100644 (file)
--- a/muttlib.c
+++ b/muttlib.c
@@ -178,6 +178,7 @@ void mutt_free_body (BODY **p)
     }
 
     FREE (&b->filename);
+    FREE (&b->d_filename);
     FREE (&b->charset);
     FREE (&b->content);
     FREE (&b->xtype);
index 8b96ce78df84db99c2ab6db2b9e2471b013c72d3..771eae2d6287488f5b26a5f26faef41325215988 100644 (file)
--- a/sendlib.c
+++ b/sendlib.c
@@ -1093,6 +1093,7 @@ void mutt_message_to_7bit (BODY *a, FILE *fp)
     return;
 
   a->encoding = ENC7BIT;
+  FREE (&a->d_filename);
   a->d_filename = a->filename;
   if (a->filename && a->unlink)
     unlink (a->filename);
@@ -1142,6 +1143,7 @@ static void transform_to_7bit (BODY *a, FILE *fpin)
       s.fpin = fpin;
       mutt_decode_attachment (a, &s);
       safe_fclose (&s.fpout);
+      FREE (&a->d_filename);
       a->d_filename = a->filename;
       a->filename = safe_strdup (buff);
       a->unlink = 1;