mutt_*mktemp--
[apps/madmutt.git] / lib-crypt / crypt-gpgme.c
index c5c6986..29a676e 100644 (file)
@@ -348,10 +348,9 @@ static gpgme_data_t body_to_data_object (BODY * a, int convert)
   int err = 0;
   gpgme_data_t data;
 
-  mutt_mktemp (tempfile);
-  fptmp = safe_fopen (tempfile, "w+");
+  fptmp = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
   if (!fptmp) {
-    mutt_perror (tempfile);
+    mutt_perror (_("Can't create temporary file"));
     return NULL;
   }
 
@@ -380,13 +379,11 @@ static gpgme_data_t body_to_data_object (BODY * a, int convert)
       buf[0] = c;
       gpgme_data_write (data, buf, 1);
     }
-    fclose (fptmp);
     gpgme_data_seek (data, 0, SEEK_SET);
-  }
-  else {
-    fclose (fptmp);
+  } else {
     err = gpgme_data_new_from_file (&data, tempfile, 1);
   }
+  m_fclose(&fptmp);
   unlink (tempfile);
   if (err) {
     mutt_error (_("error allocating data object: %s\n"), gpgme_strerror (err));
@@ -457,10 +454,9 @@ static char *data_object_to_tempfile (gpgme_data_t data, FILE ** ret_fp)
   FILE *fp;
   ssize_t nread = 0;
 
-  mutt_mktemp (tempfile);
-  fp = safe_fopen (tempfile, "w+");
+  fp = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
   if (!fp) {
-    mutt_perror (tempfile);
+    mutt_perror (_("Can't create temporary file"));
     return NULL;
   }
 
@@ -472,7 +468,7 @@ static char *data_object_to_tempfile (gpgme_data_t data, FILE ** ret_fp)
     while ((nread = gpgme_data_read (data, buf, sizeof (buf)))) {
       if (fwrite (buf, nread, 1, fp) != 1) {
         mutt_perror (tempfile);
-        fclose (fp);
+        m_fclose(&fp);
         unlink (tempfile);
         return NULL;
       }
@@ -481,11 +477,11 @@ static char *data_object_to_tempfile (gpgme_data_t data, FILE ** ret_fp)
   if (ret_fp)
     rewind (fp);
   else
-    fclose (fp);
+    m_fclose(&fp);
   if (nread == -1) {
     mutt_error (_("error reading data object: %s\n"), gpgme_strerror (err));
     unlink (tempfile);
-    fclose (fp);
+    m_fclose(&fp);
     return NULL;
   }
   if (ret_fp)
@@ -1469,9 +1465,9 @@ int pgp_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b, BODY ** cur)
 
   p_clear(&s, 1);
   s.fpin = fpin;
-  mutt_mktemp (tempfile);
-  if (!(*fpout = safe_fopen (tempfile, "w+"))) {
-    mutt_perror (tempfile);
+  *fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+  if (!*fpout) {
+    mutt_perror (_("Can't create temporary file"));
     return -1;
   }
   unlink (tempfile);
@@ -1514,9 +1510,9 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
   p_clear(&s, 1);
   s.fpin = fpin;
   fseeko (s.fpin, b->offset, 0);
-  mutt_mktemp (tempfile);
-  if (!(tmpfp = safe_fopen (tempfile, "w+"))) {
-    mutt_perror (tempfile);
+  tmpfp = m_tempfile (tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+  if (!tmpfp) {
+    mutt_perror (_("Can't create temporary file"));
     return -1;
   }
   mutt_unlink (tempfile);
@@ -1531,9 +1527,9 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
   p_clear(&s, 1);
   s.fpin = tmpfp;
   s.fpout = 0;
-  mutt_mktemp (tempfile);
-  if (!(*fpout = safe_fopen (tempfile, "w+"))) {
-    mutt_perror (tempfile);
+  *fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+  if (!*fpout) {
+    mutt_perror (_("Can't create temporary file"));
     return -1;
   }
   mutt_unlink (tempfile);
@@ -1544,7 +1540,7 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
   b->type = saved_b_type;
   b->length = saved_b_length;
   b->offset = saved_b_offset;
-  fclose (tmpfp);
+  m_fclose(&tmpfp);
   rewind (*fpout);
   if (*cur && !is_signed && !(*cur)->parts
       && mutt_is_application_smime (*cur)) {
@@ -1566,9 +1562,9 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
     p_clear(&s, 1);
     s.fpin = *fpout;
     fseeko (s.fpin, bb->offset, 0);
-    mutt_mktemp (tempfile);
-    if (!(tmpfp = safe_fopen (tempfile, "w+"))) {
-      mutt_perror (tempfile);
+    tmpfp = m_tempfile (tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+    if (!tmpfp) {
+      mutt_perror (_("Can't create temporary file"));
       return -1;
     }
     mutt_unlink (tempfile);
@@ -1579,14 +1575,14 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
     bb->length = ftello (s.fpout);
     bb->offset = 0;
     rewind (tmpfp);
-    fclose (*fpout);
+    m_fclose(&*fpout);
 
     p_clear(&s, 1);
     s.fpin = tmpfp;
     s.fpout = 0;
-    mutt_mktemp (tempfile);
-    if (!(*fpout = safe_fopen (tempfile, "w+"))) {
-      mutt_perror (tempfile);
+    *fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+    if (!*fpout) {
+      mutt_perror (_("Can't create temporary file"));
       return -1;
     }
     mutt_unlink (tempfile);
@@ -1597,7 +1593,7 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
     bb->type = saved_b_type;
     bb->length = saved_b_length;
     bb->offset = saved_b_offset;
-    fclose (tmpfp);
+    m_fclose(&tmpfp);
     rewind (*fpout);
     body_list_wipe(cur);
     *cur = tmp_b;
@@ -1645,7 +1641,7 @@ static int pgp_check_traditional_one_body (FILE * fp, BODY * b,
         sgn = 1;
     }
   }
-  safe_fclose (&tfp);
+  m_fclose(&tfp);
   unlink (tempfile);
 
   if (!enc && !sgn)
@@ -1738,7 +1734,7 @@ static void copy_clearsigned (gpgme_data_t data, STATE * s, char *charset)
   }
 
   fgetconv_close (&fc);
-  fclose (fp);
+  m_fclose(&fp);
 }
 
 
@@ -1946,7 +1942,7 @@ int pgp_gpgme_application_handler (BODY * m, STATE * s)
       }
 
       if (pgpout) {
-        safe_fclose (&pgpout);
+        m_fclose(&pgpout);
       }
     }
     else {
@@ -1995,8 +1991,8 @@ int pgp_gpgme_encrypted_handler (BODY * a, STATE * s)
   /* Move forward to the application/pgp-encrypted body. */
   a = a->next;
 
-  mutt_mktemp (tempfile);
-  if (!(fpout = safe_fopen (tempfile, "w+"))) {
+  fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+  if (!fpout) {
     if (s->flags & M_DISPLAY)
       state_attach_puts (_("[-- Error: could not create temporary file! "
                            "--]\n"), s);
@@ -2040,7 +2036,7 @@ int pgp_gpgme_encrypted_handler (BODY * a, STATE * s)
     body_list_wipe(&tattach);
   }
 
-  fclose (fpout);
+  m_fclose(&fpout);
   mutt_unlink (tempfile);
   return (rc);
 }
@@ -2055,8 +2051,8 @@ int smime_gpgme_application_handler (BODY * a, STATE * s)
   int rc = 0;
 
   a->warnsig = 0;
-  mutt_mktemp (tempfile);
-  if (!(fpout = safe_fopen (tempfile, "w+"))) {
+  fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+  if (!fpout) {
     if (s->flags & M_DISPLAY)
       state_attach_puts (_("[-- Error: could not create temporary file! "
                            "--]\n"), s);
@@ -2104,7 +2100,7 @@ int smime_gpgme_application_handler (BODY * a, STATE * s)
     body_list_wipe(&tattach);
   }
 
-  fclose (fpout);
+  m_fclose(&fpout);
   mutt_unlink (tempfile);
   return (rc);
 }
@@ -2927,10 +2923,9 @@ static void verify_key (crypt_key_t * key)
   gpgme_key_t k = NULL;
   int maxdepth = 100;
 
-  mutt_mktemp (tempfile);
-  if (!(fp = safe_fopen (tempfile, "w"))) {
+  fp = m_tempfile (tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+  if (!fp) {
     mutt_perror (_("Can't create temporary file"));
-
     return;
   }
   mutt_message _("Collecting data...");
@@ -2972,7 +2967,7 @@ static void verify_key (crypt_key_t * key)
 leave:
   gpgme_key_release (k);
   gpgme_release (listctx);
-  fclose (fp);
+  m_fclose(&fp);
   mutt_clear_error ();
   snprintf (cmd, sizeof (cmd), _("Key ID: 0x%s"), crypt_keyid (key));
   mutt_do_pager (cmd, tempfile, 0, NULL);