]> granicus.if.org Git - neomutt/commitdiff
Fix a file descriptor leak in sendlib.c.
authorThomas Roessler <roessler@does-not-exist.org>
Wed, 21 Jun 2000 06:53:30 +0000 (06:53 +0000)
committerThomas Roessler <roessler@does-not-exist.org>
Wed, 21 Jun 2000 06:53:30 +0000 (06:53 +0000)
postpone.c
sendlib.c

index 69597f3428b59601173d03b9800e004ec279c0e8..cdbb803a632e120432092e9fb2edfb756671f472 100644 (file)
@@ -535,7 +535,7 @@ int mutt_prepare_template (FILE *fp, CONTEXT *ctx, HEADER *newhdr, HEADER *hdr,
   }
 
   safe_free ((void **) &newhdr->env->message_id);
-  safe_free ((void **) &newhdr->env->mail_followup_to);
+  safe_free ((void **) &newhdr->env->mail_followup_to); /* really? */
 
 #ifdef HAVE_PGP
   /* decrypt pgp/mime encoded messages */
@@ -623,7 +623,7 @@ int mutt_prepare_template (FILE *fp, CONTEXT *ctx, HEADER *newhdr, HEADER *hdr,
 
     if (mutt_is_text_type (b->type, b->subtype))
       b->noconv = 1;
-      
+
     mutt_stamp_attachment (b);
 
     mutt_free_body (&b->parts);
index c91ed34ae45a2c2919bc84237deb3504bc7e78b2..9226b4aa248023b544f919324b94c9caef136e6c 100644 (file)
--- a/sendlib.c
+++ b/sendlib.c
@@ -847,8 +847,10 @@ CONTENT *mutt_get_content_info (const char *fname, BODY *b)
 {
   CONTENT *info;
   CONTENT_STATE state;
-  FILE *fp;
+  FILE *fp = NULL;
   char *fromcode, *tocode;
+  char buffer[100];
+  size_t r;
 
   if(b && !fname) fname = b->filename;
   
@@ -871,22 +873,20 @@ CONTENT *mutt_get_content_info (const char *fname, BODY *b)
     {
       if (!chs)
        mutt_set_parameter ("charset", tocode, &b->parameter);
-      free (fromcode);
-      free (tocode);
+      safe_free (&fromcode);
+      safe_free (&tocode);
+      safe_fclose (&fp);
       return info;
     }
   }
 
-  {
-    char buffer[100];
-    size_t r;
-
-    rewind (fp);
-    while ((r = fread (buffer, 1, sizeof(buffer), fp)))
-      update_content_info (info, &state, buffer, r);
-    update_content_info (info, &state, 0, 0);
-  }
+  rewind (fp);
+  while ((r = fread (buffer, 1, sizeof(buffer), fp)))
+    update_content_info (info, &state, buffer, r);
+  update_content_info (info, &state, 0, 0);
 
+  safe_fclose (&fp);
+  
   if (b != NULL && b->type == TYPETEXT && (!b->noconv))
     mutt_set_parameter ("charset",
                        info->hibin ? "unknown-8bit" : "us-ascii",