]> granicus.if.org Git - neomutt/commitdiff
fix: resource leak - CID 76962
authorRichard Russon <rich@flatcap.org>
Thu, 16 Feb 2017 12:36:56 +0000 (12:36 +0000)
committerRichard Russon <rich@flatcap.org>
Mon, 20 Feb 2017 16:31:02 +0000 (16:31 +0000)
smime.c

diff --git a/smime.c b/smime.c
index 117ea6a9e68c160b16b5a24a806bccbdb43cab82..805ad2bd3247f61360346952ad43d789321837bc 100644 (file)
--- a/smime.c
+++ b/smime.c
@@ -1842,7 +1842,7 @@ static BODY *smime_handle_entity (BODY *m, STATE *s, FILE *outFile)
   if ((smimeerr = safe_fopen (errfile, "w+")) == NULL)
   {
     mutt_perror (errfile);
-    safe_fclose (&smimeout); smimeout = NULL;
+    safe_fclose (&smimeout);
     return NULL;
   }
   mutt_unlink (errfile);
@@ -1852,8 +1852,8 @@ static BODY *smime_handle_entity (BODY *m, STATE *s, FILE *outFile)
   if ((tmpfp = safe_fopen (tmpfname, "w+")) == NULL)
   {
     mutt_perror (tmpfname);
-    safe_fclose (&smimeout); smimeout = NULL;
-    safe_fclose (&smimeerr); smimeerr = NULL;
+    safe_fclose (&smimeout);
+    safe_fclose (&smimeerr);
     return NULL;
   }
 
@@ -1868,10 +1868,11 @@ static BODY *smime_handle_entity (BODY *m, STATE *s, FILE *outFile)
       (thepid = smime_invoke_decrypt (&smimein, NULL, NULL, -1,
                                      fileno (smimeout),  fileno (smimeerr), tmpfname)) == -1)
   {
-    safe_fclose (&smimeout); smimeout = NULL;
+    safe_fclose (&smimeout);
     mutt_unlink (tmpfname);
     if (s->flags & MUTT_DISPLAY)
       state_attach_puts (_("[-- Error: unable to create OpenSSL subprocess! --]\n"), s);
+    safe_fclose (&smimeerr);
     return NULL;
   }
   else if ((type & SIGNOPAQUE) &&
@@ -1879,10 +1880,11 @@ static BODY *smime_handle_entity (BODY *m, STATE *s, FILE *outFile)
                                          fileno (smimeout), fileno (smimeerr), NULL,
                                          tmpfname, SIGNOPAQUE)) == -1)
   {
-    safe_fclose (&smimeout); smimeout = NULL;
+    safe_fclose (&smimeout);
     mutt_unlink (tmpfname);
     if (s->flags & MUTT_DISPLAY)
       state_attach_puts (_("[-- Error: unable to create OpenSSL subprocess! --]\n"), s);
+    safe_fclose (&smimeerr);
     return NULL;
   }
 
@@ -1934,7 +1936,8 @@ static BODY *smime_handle_entity (BODY *m, STATE *s, FILE *outFile)
       if ((fpout = safe_fopen (tmptmpfname, "w+")) == NULL)
       {
        mutt_perror(tmptmpfname);
-       safe_fclose (&smimeout); smimeout = NULL;
+        safe_fclose (&smimeout);
+        safe_fclose (&smimeerr);
        return NULL;
       }
     }