Use m_tempfile()
[apps/madmutt.git] / lib-crypt / pgpkey.c
index ddb8f1c..16d9e4c 100644 (file)
 #include <lib-lib/lib-lib.h>
 
 #include <lib-mime/mime.h>
+#include <lib-sys/unix.h>
 
 #include <lib-ui/curses.h>
 #include <lib-ui/enter.h>
 #include <lib-ui/menu.h>
 
-#include "mutt.h"
 #include "recvattach.h"
 #include "pgp.h"
 #include "pager.h"
@@ -500,14 +500,15 @@ static pgp_key_t pgp_select_key (pgp_key_t keys, address_t * p, const char *s)
 
     case OP_VERIFY_KEY:
 
-      mutt_mktemp (tempfile);
       if ((devnull = fopen ("/dev/null", "w")) == NULL) {       /* __FOPEN_CHECKED__ */
         mutt_perror (_("Can't open /dev/null"));
 
         break;
       }
-      if ((fp = safe_fopen (tempfile, "w")) == NULL) {
-        fclose (devnull);
+
+      fp = m_tempfile (tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+      if (!fp) {
+        m_fclose(&devnull);
         mutt_perror (_("Can't create temporary file"));
 
         break;
@@ -525,13 +526,13 @@ static pgp_key_t pgp_select_key (pgp_key_t keys, address_t * p, const char *s)
         mutt_perror (_("Can't create filter"));
 
         unlink (tempfile);
-        fclose (fp);
-        fclose (devnull);
+        m_fclose(&fp);
+        m_fclose(&devnull);
       }
 
       mutt_wait_filter (thepid);
-      fclose (fp);
-      fclose (devnull);
+      m_fclose(&fp);
+      m_fclose(&devnull);
       mutt_clear_error ();
       snprintf (cmd, sizeof (cmd), _("Key ID: 0x%s"),
                 pgp_keyid (pgp_principal_key
@@ -682,20 +683,21 @@ BODY *pgp_make_key_attachment (char *tempf)
   pgp_free_key (&key);
 
   if (!tempf) {
-    mutt_mktemp (tempfb);
+    tempfp = m_tempfile (tempfb, sizeof(tempfb), NONULL(Tempdir), NULL);
     tempf = tempfb;
+  } else {
+    tempfp = safe_fopen(tempf, "a");
   }
 
-  if ((tempfp = safe_fopen (tempf, tempf == tempfb ? "w" : "a")) == NULL) {
+  if (!tempfp) {
     mutt_perror (_("Can't create temporary file"));
-
     return NULL;
   }
 
   if ((devnull = fopen ("/dev/null", "w")) == NULL) {   /* __FOPEN_CHECKED__ */
     mutt_perror (_("Can't open /dev/null"));
 
-    fclose (tempfp);
+    m_fclose(&tempfp);
     if (tempf == tempfb)
       unlink (tempf);
     return NULL;
@@ -710,15 +712,15 @@ BODY *pgp_make_key_attachment (char *tempf)
     mutt_perror (_("Can't create filter"));
 
     unlink (tempf);
-    fclose (tempfp);
-    fclose (devnull);
+    m_fclose(&tempfp);
+    m_fclose(&devnull);
     return NULL;
   }
 
   mutt_wait_filter (thepid);
 
-  fclose (tempfp);
-  fclose (devnull);
+  m_fclose(&tempfp);
+  m_fclose(&devnull);
 
   att = body_new();
   att->filename = m_strdup(tempf);
@@ -876,7 +878,7 @@ pgp_key_t pgp_getkeybyaddr (address_t * a, short abilities, pgp_ring_t keyring)
   return NULL;
 }
 
-pgp_key_t pgp_getkeybystr (char *p, short abilities, pgp_ring_t keyring)
+pgp_key_t pgp_getkeybystr (const char *p, short abilities, pgp_ring_t keyring)
 {
   string_list_t *hints = NULL;
   pgp_key_t keys;