projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
various code simplifications.
[apps/madmutt.git]
/
lib-crypt
/
smime.c
diff --git
a/lib-crypt/smime.c
b/lib-crypt/smime.c
index
24ed09a
..
4a4f89c
100644
(file)
--- a/
lib-crypt/smime.c
+++ b/
lib-crypt/smime.c
@@
-16,17
+16,19
@@
#endif
#include <lib-mime/mime.h>
#endif
#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 <lib-ui/curses.h>
#include <lib-ui/enter.h>
#include <lib-ui/menu.h>
-#include "mutt.h"
#include "alias.h"
#include "handler.h"
#include "copy.h"
#include "alias.h"
#include "alias.h"
#include "handler.h"
#include "copy.h"
#include "alias.h"
+
#include "crypt.h"
#include "crypt.h"
+#include "smime.h"
struct smime_command_context {
const char *key; /* %k */
struct smime_command_context {
const char *key; /* %k */
@@
-354,7
+356,7
@@
char *smime_ask_for_key (char *prompt, char *mailbox __attribute__((unused)),
if (fgets (buf, sizeof (buf), idx))
cert_num++;
}
if (fgets (buf, sizeof (buf), idx))
cert_num++;
}
-
fclose (
idx);
+
m_fclose(&
idx);
for (;;) {
*qry = 0;
for (;;) {
*qry = 0;
@@
-397,17
+399,17
@@
char *smime_ask_for_key (char *prompt, char *mailbox __attribute__((unused)),
cur++;
}
cur++;
}
-
fclose (
idx);
+
m_fclose(&
idx);
/* Make Helpstring */
helpstr[0] = 0;
mutt_make_help (buf, sizeof (buf), _("Exit "), MENU_SMIME, OP_EXIT);
/* Make Helpstring */
helpstr[0] = 0;
mutt_make_help (buf, sizeof (buf), _("Exit "), MENU_SMIME, OP_EXIT);
- strcat (helpstr, buf); /* __STRCAT_CHECKED__ */
+ m_strcat(helpstr, sizeof(helpstr), buf);
mutt_make_help (buf, sizeof (buf), _("Select "), MENU_SMIME,
OP_GENERIC_SELECT_ENTRY);
mutt_make_help (buf, sizeof (buf), _("Select "), MENU_SMIME,
OP_GENERIC_SELECT_ENTRY);
- strcat (helpstr, buf); /* __STRCAT_CHECKED__ */
+ m_strcat(helpstr, sizeof(helpstr), buf);
mutt_make_help (buf, sizeof (buf), _("Help"), MENU_SMIME, OP_HELP);
mutt_make_help (buf, sizeof (buf), _("Help"), MENU_SMIME, OP_HELP);
- strcat (helpstr, buf); /* __STRCAT_CHECKED__ */
+ m_strcat(helpstr, sizeof(helpstr), buf);
/* Create the menu */
menu = mutt_new_menu ();
/* Create the menu */
menu = mutt_new_menu ();
@@
-567,7
+569,7
@@
char *smime_get_field_from_db (char *mailbox, char *query, short public,
}
}
}
}
-
safe_fclose
(&fp);
+
m_fclose
(&fp);
if (ask) {
if (public && *fields[4] == 'u')
if (ask) {
if (public && *fields[4] == 'u')
@@
-607,15
+609,11
@@
char *smime_get_field_from_db (char *mailbox, char *query, short public,
return m_strdup(key);
}
return m_strdup(key);
}
-
-
-
/*
This sets the '*ToUse' variables for an upcoming decryption, where
the reuquired key is different from SmimeDefaultKey.
*/
/*
This sets the '*ToUse' variables for an upcoming decryption, where
the reuquired key is different from SmimeDefaultKey.
*/
-
-void _smime_getkeys (char *mailbox)
+static void _smime_getkeys (char *mailbox)
{
char *k = NULL;
char buf[STRING];
{
char *k = NULL;
char buf[STRING];
@@
-710,8
+708,6
@@
char *smime_findKeys (address_t * to, address_t * cc, address_t * bcc)
address_t *p, *q;
int i;
address_t *p, *q;
int i;
- const char *fqdn = mutt_fqdn (1);
-
for (i = 0; i < 3; i++) {
switch (i) {
case 0:
for (i = 0; i < 3; i++) {
switch (i) {
case 0:
@@
-732,10
+728,9
@@
char *smime_findKeys (address_t * to, address_t * cc, address_t * bcc)
last = &((*last)->next);
}
last = &((*last)->next);
}
- if (fqdn)
- rfc822_qualify (tmp, fqdn);
+ rfc822_qualify(tmp, mutt_fqdn(1));
- address_list_uniq(
&
tmp);
+ address_list_uniq(tmp);
for (p = tmp; p; p = p->next) {
char buf[LONG_STRING];
for (p = tmp; p; p = p->next) {
char buf[LONG_STRING];
@@
-756,7
+751,7
@@
char *smime_findKeys (address_t * to, address_t * cc, address_t * bcc)
keylist_size += m_strlen(keyID) + 2;
p_realloc(&keylist, keylist_size);
keylist_size += m_strlen(keyID) + 2;
p_realloc(&keylist, keylist_size);
- sprintf (keylist + keylist_used, "%s\n", keyID);
/* __SPRINTF_CHECKED__ */
+ sprintf (keylist + keylist_used, "%s\n", keyID);
keylist_used = m_strlen(keylist);
address_list_wipe(&addr);
keylist_used = m_strlen(keylist);
address_list_wipe(&addr);
@@
-780,16
+775,16
@@
static int smime_handle_cert_email (char *certificate, char *mailbox,
int ret = -1, count = 0;
pid_t thepid;
int ret = -1, count = 0;
pid_t thepid;
-
mutt_mktemp (tmpfname
);
- if (
(fperr = safe_fopen (tmpfname, "w+")) == NULL
) {
+
fperr = m_tempfile (tmpfname, sizeof(tmpfname), NONULL(Tempdir), NULL
);
+ if (
!fperr
) {
mutt_perror (tmpfname);
return 1;
}
mutt_unlink (tmpfname);
mutt_perror (tmpfname);
return 1;
}
mutt_unlink (tmpfname);
-
mutt_mktemp (tmpfname
);
- if (
(fpout = safe_fopen (tmpfname, "w+")) == NULL
) {
-
fclose (
fperr);
+
fpout = m_tempfile (tmpfname, sizeof(tmpfname), NONULL(Tempdir), NULL
);
+ if (
!fpout
) {
+
m_fclose(&
fperr);
mutt_perror (tmpfname);
return 1;
}
mutt_perror (tmpfname);
return 1;
}
@@
-800,8
+795,8
@@
static int smime_handle_cert_email (char *certificate, char *mailbox,
certificate, NULL, NULL, NULL, NULL, NULL,
SmimeGetCertEmailCommand)) == -1) {
mutt_message (_("Error: unable to create OpenSSL subprocess!"));
certificate, NULL, NULL, NULL, NULL, NULL,
SmimeGetCertEmailCommand)) == -1) {
mutt_message (_("Error: unable to create OpenSSL subprocess!"));
-
fclose (
fperr);
-
fclose (
fpout);
+
m_fclose(&
fperr);
+
m_fclose(&
fpout);
return 1;
}
return 1;
}
@@
-849,8
+844,8
@@
static int smime_handle_cert_email (char *certificate, char *mailbox,
else if (copy)
ret = 2;
else if (copy)
ret = 2;
-
fclose (
fpout);
-
fclose (
fperr);
+
m_fclose(&
fpout);
+
m_fclose(&
fperr);
return ret;
}
return ret;
}
@@
-866,16
+861,16
@@
static char *smime_extract_certificate (char *infile)
int empty;
int empty;
-
mutt_mktemp (tmpfname
);
- if (
(fperr = safe_fopen (tmpfname, "w+")) == NULL
) {
+
fperr = m_tempfile (tmpfname, sizeof(tmpfname), NONULL(Tempdir), NULL
);
+ if (
!fperr
) {
mutt_perror (tmpfname);
return NULL;
}
mutt_unlink (tmpfname);
mutt_perror (tmpfname);
return NULL;
}
mutt_unlink (tmpfname);
-
mutt_mktemp (pk7out
);
- if (
(fpout = safe_fopen (pk7out, "w+")) == NULL
) {
-
fclose (
fperr);
+
fpout = m_tempfile (pk7out, sizeof(tmpfname), NONULL(Tempdir), NULL
);
+ if (
!fpout
) {
+
m_fclose(&
fperr);
mutt_perror (pk7out);
return NULL;
}
mutt_perror (pk7out);
return NULL;
}
@@
-889,8
+884,8
@@
static char *smime_extract_certificate (char *infile)
SmimePk7outCommand)) == -1) {
mutt_any_key_to_continue (_
("Error: unable to create OpenSSL subprocess!"));
SmimePk7outCommand)) == -1) {
mutt_any_key_to_continue (_
("Error: unable to create OpenSSL subprocess!"));
-
fclose (
fperr);
-
fclose (
fpout);
+
m_fclose(&
fperr);
+
m_fclose(&
fpout);
mutt_unlink (pk7out);
return NULL;
}
mutt_unlink (pk7out);
return NULL;
}
@@
-902,22
+897,22
@@
static char *smime_extract_certificate (char *infile)
rewind (fpout);
rewind (fperr);
fflush (fperr);
rewind (fpout);
rewind (fperr);
fflush (fperr);
+
empty = (fgetc (fpout) == EOF);
empty = (fgetc (fpout) == EOF);
+
+ m_fclose(&fpout);
+
if (empty) {
mutt_perror (pk7out);
mutt_copy_stream (fperr, stdout);
if (empty) {
mutt_perror (pk7out);
mutt_copy_stream (fperr, stdout);
- fclose (fpout);
- fclose (fperr);
+ m_fclose(&fperr);
mutt_unlink (pk7out);
return NULL;
mutt_unlink (pk7out);
return NULL;
-
}
}
-
- fclose (fpout);
- mutt_mktemp (certfile);
- if ((fpout = safe_fopen (certfile, "w+")) == NULL) {
- fclose (fperr);
+ fpout = m_tempfile (certfile, sizeof(certfile), NONULL(Tempdir), NULL);
+ if (!fpout) {
+ m_fclose(&fperr);
mutt_unlink (pk7out);
mutt_perror (certfile);
return NULL;
mutt_unlink (pk7out);
mutt_perror (certfile);
return NULL;
@@
-931,8
+926,8
@@
static char *smime_extract_certificate (char *infile)
SmimeGetCertCommand)) == -1) {
mutt_any_key_to_continue (_
("Error: unable to create OpenSSL subprocess!"));
SmimeGetCertCommand)) == -1) {
mutt_any_key_to_continue (_
("Error: unable to create OpenSSL subprocess!"));
-
fclose (
fperr);
-
fclose (
fpout);
+
m_fclose(&
fperr);
+
m_fclose(&
fpout);
mutt_unlink (pk7out);
mutt_unlink (certfile);
return NULL;
mutt_unlink (pk7out);
mutt_unlink (certfile);
return NULL;
@@
-949,14
+944,14
@@
static char *smime_extract_certificate (char *infile)
empty = (fgetc (fpout) == EOF);
if (empty) {
mutt_copy_stream (fperr, stdout);
empty = (fgetc (fpout) == EOF);
if (empty) {
mutt_copy_stream (fperr, stdout);
-
fclose (
fpout);
-
fclose (
fperr);
+
m_fclose(&
fpout);
+
m_fclose(&
fperr);
mutt_unlink (certfile);
return NULL;
}
mutt_unlink (certfile);
return NULL;
}
-
fclose (
fpout);
-
fclose (
fperr);
+
m_fclose(&
fpout);
+
m_fclose(&
fperr);
return m_strdup(certfile);
}
return m_strdup(certfile);
}
@@
-969,18
+964,16
@@
static char *smime_extract_signer_certificate (char *infile)
pid_t thepid;
int empty;
pid_t thepid;
int empty;
-
- mutt_mktemp (tmpfname);
- if ((fperr = safe_fopen (tmpfname, "w+")) == NULL) {
+ fperr = m_tempfile (tmpfname, sizeof(tmpfname), NONULL(Tempdir), NULL);
+ if (!fperr) {
mutt_perror (tmpfname);
return NULL;
}
mutt_unlink (tmpfname);
mutt_perror (tmpfname);
return NULL;
}
mutt_unlink (tmpfname);
-
- mutt_mktemp (certfile);
- if ((fpout = safe_fopen (certfile, "w+")) == NULL) {
- fclose (fperr);
+ m_tempfile (certfile, sizeof(certfile), NONULL(Tempdir), NULL);
+ if (!fpout) {
+ m_fclose(&fperr);
mutt_perror (certfile);
return NULL;
}
mutt_perror (certfile);
return NULL;
}
@@
-993,8
+986,8
@@
static char *smime_extract_signer_certificate (char *infile)
SmimeGetSignerCertCommand)) == -1) {
mutt_any_key_to_continue (_
("Error: unable to create OpenSSL subprocess!"));
SmimeGetSignerCertCommand)) == -1) {
mutt_any_key_to_continue (_
("Error: unable to create OpenSSL subprocess!"));
-
fclose (
fperr);
-
fclose (
fpout);
+
m_fclose(&
fperr);
+
m_fclose(&
fpout);
mutt_unlink (pk7out);
mutt_unlink (certfile);
return NULL;
mutt_unlink (pk7out);
mutt_unlink (certfile);
return NULL;
@@
-1007,25
+1000,22
@@
static char *smime_extract_signer_certificate (char *infile)
rewind (fperr);
fflush (fperr);
empty = (fgetc (fpout) == EOF);
rewind (fperr);
fflush (fperr);
empty = (fgetc (fpout) == EOF);
+ m_fclose(&fpout);
+
if (empty) {
mutt_endwin (NULL);
mutt_copy_stream (fperr, stdout);
mutt_any_key_to_continue (NULL);
if (empty) {
mutt_endwin (NULL);
mutt_copy_stream (fperr, stdout);
mutt_any_key_to_continue (NULL);
- fclose (fpout);
- fclose (fperr);
+ m_fclose(&fperr);
mutt_unlink (certfile);
return NULL;
}
mutt_unlink (certfile);
return NULL;
}
- fclose (fpout);
- fclose (fperr);
+ m_fclose(&fperr);
return m_strdup(certfile);
}
return m_strdup(certfile);
}
-
-
-
/* Add a certificate and update index file (externally). */
void smime_invoke_import (char *infile, char *mailbox __attribute__ ((unused)))
/* Add a certificate and update index file (externally). */
void smime_invoke_import (char *infile, char *mailbox __attribute__ ((unused)))
@@
-1034,22
+1024,21
@@
void smime_invoke_import (char *infile, char *mailbox __attribute__ ((unused)))
FILE *smimein = NULL, *fpout = NULL, *fperr = NULL;
pid_t thepid = -1;
FILE *smimein = NULL, *fpout = NULL, *fperr = NULL;
pid_t thepid = -1;
-
mutt_mktemp (tmpfname
);
- if (
(fperr = safe_fopen (tmpfname, "w+")) == NULL
) {
+
fperr = m_tempfile (tmpfname, sizeof(tmpfname), NONULL(Tempdir), NULL
);
+ if (
!fperr
) {
mutt_perror (tmpfname);
return;
}
mutt_unlink (tmpfname);
mutt_perror (tmpfname);
return;
}
mutt_unlink (tmpfname);
-
mutt_mktemp (tmpfname
);
- if (
(fpout = safe_fopen (tmpfname, "w+")) == NULL
) {
-
fclose (
fperr);
+
fpout = m_tempfile (tmpfname, sizeof(tmpfname), NONULL(Tempdir), NULL
);
+ if (
!fpout
) {
+
m_fclose(&
fperr);
mutt_perror (tmpfname);
return;
}
mutt_unlink (tmpfname);
mutt_perror (tmpfname);
return;
}
mutt_unlink (tmpfname);
-
buf[0] = '\0';
if (option (OPTASKCERTLABEL))
mutt_get_field ("Label for certificate:", buf, sizeof (buf), 0);
buf[0] = '\0';
if (option (OPTASKCERTLABEL))
mutt_get_field ("Label for certificate:", buf, sizeof (buf), 0);
@@
-1067,7
+1056,7
@@
void smime_invoke_import (char *infile, char *mailbox __attribute__ ((unused)))
}
fputs (buf, smimein);
fputc ('\n', smimein);
}
fputs (buf, smimein);
fputc ('\n', smimein);
-
fclose (
smimein);
+
m_fclose(&
smimein);
mutt_wait_filter (thepid);
mutt_wait_filter (thepid);
@@
-1083,22
+1072,19
@@
void smime_invoke_import (char *infile, char *mailbox __attribute__ ((unused)))
mutt_copy_stream (fpout, stdout);
mutt_copy_stream (fperr, stdout);
mutt_copy_stream (fpout, stdout);
mutt_copy_stream (fperr, stdout);
- fclose (fpout);
- fclose (fperr);
-
+ m_fclose(&fpout);
+ m_fclose(&fperr);
}
}
-
-
int smime_verify_sender (HEADER * h)
{
char *mbox = NULL, *certfile, tempfname[_POSIX_PATH_MAX];
FILE *fpout;
int retval = 1;
int smime_verify_sender (HEADER * h)
{
char *mbox = NULL, *certfile, tempfname[_POSIX_PATH_MAX];
FILE *fpout;
int retval = 1;
-
mutt_mktemp (tempfname
);
- if (!
(fpout = safe_fopen (tempfname, "w"))
) {
- mutt_perror (
tempfname
);
+
fpout = m_tempfile (tempfname, sizeof(tempfname), NONULL(Tempdir), NULL
);
+ if (!
fpout
) {
+ mutt_perror (
_("Can't create temporary file")
);
return 1;
}
return 1;
}
@@
-1110,7
+1096,7
@@
int smime_verify_sender (HEADER * h)
mutt_copy_message (fpout, Context, h, 0, 0);
fflush (fpout);
mutt_copy_message (fpout, Context, h, 0, 0);
fflush (fpout);
-
fclose (
fpout);
+
m_fclose(&
fpout);
if (h->env->from) {
h->env->from = mutt_expand_aliases (h->env->from);
if (h->env->from) {
h->env->from = mutt_expand_aliases (h->env->from);
@@
-1196,27
+1182,27
@@
BODY *smime_build_smime_entity (BODY * a, char *certlist)
int err = 0, empty;
pid_t thepid;
int err = 0, empty;
pid_t thepid;
-
mutt_mktemp (tempfile
);
- if (
(fpout = safe_fopen (tempfile, "w+")) == NULL
) {
- mutt_perror (
tempfile
);
- return
(NULL)
;
+
fpout = m_tempfile (tempfile, sizeof(tempfile), NONULL(Tempdir), NULL
);
+ if (
!fpout
) {
+ mutt_perror (
_("Can't create temporary file")
);
+ return
NULL
;
}
}
-
mutt_mktemp (smimeerrfile
);
- if (
(smimeerr = safe_fopen (smimeerrfile, "w+")) == NULL
) {
+
smimeerr = m_tempfile (smimeerrfile, sizeof(smimeerrfile), NONULL(Tempdir), NULL
);
+ if (
!smimeerr
) {
mutt_perror (smimeerrfile);
mutt_perror (smimeerrfile);
-
fclose (
fpout);
+
m_fclose(&
fpout);
mutt_unlink (tempfile);
return NULL;
}
mutt_unlink (smimeerrfile);
mutt_unlink (tempfile);
return NULL;
}
mutt_unlink (smimeerrfile);
-
mutt_mktemp (smimeinfile
);
- if (
(fptmp = safe_fopen (smimeinfile, "w+")) == NULL
) {
+
fptmp = m_tempfile (smimeinfile, sizeof(smimeinfile), NONULL(Tempdir), NULL
);
+ if (
!fptmp
) {
mutt_perror (smimeinfile);
mutt_unlink (tempfile);
mutt_perror (smimeinfile);
mutt_unlink (tempfile);
-
fclose (
fpout);
-
fclose (
smimeerr);
+
m_fclose(&
fpout);
+
m_fclose(&
smimeerr);
return NULL;
}
return NULL;
}
@@
-1239,19
+1225,19
@@
BODY *smime_build_smime_entity (BODY * a, char *certlist)
mutt_write_mime_header (a, fptmp);
fputc ('\n', fptmp);
mutt_write_mime_body (a, fptmp);
mutt_write_mime_header (a, fptmp);
fputc ('\n', fptmp);
mutt_write_mime_body (a, fptmp);
-
fclose (
fptmp);
+
m_fclose(&
fptmp);
if ((thepid =
smime_invoke_encrypt (&smimein, NULL, NULL, -1,
fileno (fpout), fileno (smimeerr),
smimeinfile, certfile)) == -1) {
if ((thepid =
smime_invoke_encrypt (&smimein, NULL, NULL, -1,
fileno (fpout), fileno (smimeerr),
smimeinfile, certfile)) == -1) {
-
fclose (
smimeerr);
+
m_fclose(&
smimeerr);
mutt_unlink (smimeinfile);
mutt_unlink (certfile);
return (NULL);
}
mutt_unlink (smimeinfile);
mutt_unlink (certfile);
return (NULL);
}
-
fclose (
smimein);
+
m_fclose(&
smimein);
mutt_wait_filter (thepid);
mutt_unlink (smimeinfile);
mutt_wait_filter (thepid);
mutt_unlink (smimeinfile);
@@
-1260,7
+1246,7
@@
BODY *smime_build_smime_entity (BODY * a, char *certlist)
fflush (fpout);
rewind (fpout);
empty = (fgetc (fpout) == EOF);
fflush (fpout);
rewind (fpout);
empty = (fgetc (fpout) == EOF);
-
fclose (
fpout);
+
m_fclose(&
fpout);
fflush (smimeerr);
rewind (smimeerr);
fflush (smimeerr);
rewind (smimeerr);
@@
-1268,7
+1254,7
@@
BODY *smime_build_smime_entity (BODY * a, char *certlist)
err = 1;
fputs (buf, stdout);
}
err = 1;
fputs (buf, stdout);
}
-
fclose (
smimeerr);
+
m_fclose(&
smimeerr);
/* pause if there is any error output from SMIME */
if (err)
/* pause if there is any error output from SMIME */
if (err)
@@
-1321,16
+1307,16
@@
BODY *smime_sign_message (BODY * a)
convert_to_7bit (a); /* Signed data _must_ be in 7-bit format. */
convert_to_7bit (a); /* Signed data _must_ be in 7-bit format. */
-
mutt_mktemp (filetosign
);
- if (
(sfp = safe_fopen (filetosign, "w+")) == NULL
) {
+
sfp = m_tempfile (filetosign, sizeof(filetosign), NONULL(Tempdir), NULL
);
+ if (
!sfp
) {
mutt_perror (filetosign);
return NULL;
}
mutt_perror (filetosign);
return NULL;
}
-
mutt_mktemp (signedfile
);
- if (
(smimeout = safe_fopen (signedfile, "w+")) == NULL
) {
+
smimeout = m_tempfile (signedfile, sizeof(signedfile), NONULL(Tempdir), NULL
);
+ if (
!smimeout
) {
mutt_perror (signedfile);
mutt_perror (signedfile);
-
fclose (
sfp);
+
m_fclose(&
sfp);
mutt_unlink (filetosign);
return NULL;
}
mutt_unlink (filetosign);
return NULL;
}
@@
-1338,7
+1324,7
@@
BODY *smime_sign_message (BODY * a)
mutt_write_mime_header (a, sfp);
fputc ('\n', sfp);
mutt_write_mime_body (a, sfp);
mutt_write_mime_header (a, sfp);
fputc ('\n', sfp);
mutt_write_mime_body (a, sfp);
-
fclose (
sfp);
+
m_fclose(&
sfp);
@@
-1358,14
+1344,14
@@
BODY *smime_sign_message (BODY * a)
filetosign)) == -1) {
mutt_perror (_("Can't open OpenSSL subprocess!"));
filetosign)) == -1) {
mutt_perror (_("Can't open OpenSSL subprocess!"));
-
fclose (
smimeout);
+
m_fclose(&
smimeout);
mutt_unlink (signedfile);
mutt_unlink (filetosign);
return NULL;
}
fputs (SmimePass, smimein);
fputc ('\n', smimein);
mutt_unlink (signedfile);
mutt_unlink (filetosign);
return NULL;
}
fputs (SmimePass, smimein);
fputc ('\n', smimein);
-
fclose (
smimein);
+
m_fclose(&
smimein);
mutt_wait_filter (thepid);
mutt_wait_filter (thepid);
@@
-1378,13
+1364,13
@@
BODY *smime_sign_message (BODY * a)
err = 1;
fputs (buffer, stdout);
}
err = 1;
fputs (buffer, stdout);
}
-
fclose (
smimeerr);
+
m_fclose(&
smimeerr);
fflush (smimeout);
rewind (smimeout);
empty = (fgetc (smimeout) == EOF);
fflush (smimeout);
rewind (smimeout);
empty = (fgetc (smimeout) == EOF);
-
fclose (
smimeout);
+
m_fclose(&
smimeout);
mutt_unlink (filetosign);
mutt_unlink (filetosign);
@@
-1498,7
+1484,7
@@
int smime_verify_one (BODY * sigbdy, STATE * s, const char *tempfile)
sigbdy->length = ftello (s->fpout);
sigbdy->offset = 0;
sigbdy->length = ftello (s->fpout);
sigbdy->offset = 0;
-
fclose (
s->fpout);
+
m_fclose(&
s->fpout);
/* restore final destination and substitute the tempfile for input */
s->fpout = fp;
/* restore final destination and substitute the tempfile for input */
s->fpout = fp;
@@
-1510,9
+1496,8
@@
int smime_verify_one (BODY * sigbdy, STATE * s, const char *tempfile)
sigbdy->type = origType;
sigbdy->type = origType;
-
- mutt_mktemp (smimeerrfile);
- if (!(smimeerr = safe_fopen (smimeerrfile, "w+"))) {
+ smimeerr = m_tempfile(smimeerrfile, sizeof(smimeerrfile), NONULL(Tempdir), NULL);
+ if (!smimeerr) {
mutt_perror (smimeerrfile);
mutt_unlink (signedfile);
return -1;
mutt_perror (smimeerrfile);
mutt_unlink (signedfile);
return -1;
@@
-1523,8
+1508,7
@@
int smime_verify_one (BODY * sigbdy, STATE * s, const char *tempfile)
if ((thepid = smime_invoke_verify (NULL, &smimeout, NULL,
-1, -1, fileno (smimeerr),
tempfile, signedfile, 0)) != -1) {
if ((thepid = smime_invoke_verify (NULL, &smimeout, NULL,
-1, -1, fileno (smimeerr),
tempfile, signedfile, 0)) != -1) {
- fflush (smimeout);
- fclose (smimeout);
+ m_fclose(&smimeout);
if (mutt_wait_filter (thepid))
badsig = -1;
if (mutt_wait_filter (thepid))
badsig = -1;
@@
-1547,7
+1531,7
@@
int smime_verify_one (BODY * sigbdy, STATE * s, const char *tempfile)
fflush (smimeerr);
rewind (smimeerr);
mutt_copy_stream (smimeerr, s->fpout);
fflush (smimeerr);
rewind (smimeerr);
mutt_copy_stream (smimeerr, s->fpout);
-
fclose (
smimeerr);
+
m_fclose(&
smimeerr);
state_attach_puts (_("[-- End of OpenSSL output --]\n\n"), s);
state_attach_puts (_("[-- End of OpenSSL output --]\n\n"), s);
@@
-1558,7
+1542,7
@@
int smime_verify_one (BODY * sigbdy, STATE * s, const char *tempfile)
sigbdy->offset = tmpoffset;
/* restore the original source stream */
sigbdy->offset = tmpoffset;
/* restore the original source stream */
-
fclose (
s->fpin);
+
m_fclose(&
s->fpin);
s->fpin = fp;
s->fpin = fp;
@@
-1593,29
+1577,25
@@
static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile)
if (!(type & APPLICATION_SMIME))
return NULL;
if (!(type & APPLICATION_SMIME))
return NULL;
-
mutt_mktemp (outfile
);
- if (
(smimeout = safe_fopen (outfile, "w+")) == NULL
) {
+
smimeout = m_tempfile (outfile, sizeof(outfile), NONULL(Tempdir), NULL
);
+ if (
!smimeout
) {
mutt_perror (outfile);
return NULL;
}
mutt_perror (outfile);
return NULL;
}
-
mutt_mktemp (errfile
);
- if (
(smimeerr = safe_fopen (errfile, "w+")) == NULL
) {
+
smimeerr = m_tempfile(errfile, sizeof(errfile), NONULL(Tempdir), NULL
);
+ if (
!smimeerr
) {
mutt_perror (errfile);
mutt_perror (errfile);
- fclose (smimeout);
- smimeout = NULL;
+ m_fclose(&smimeout);
return NULL;
}
mutt_unlink (errfile);
return NULL;
}
mutt_unlink (errfile);
-
- mutt_mktemp (tmpfname);
- if ((tmpfp = safe_fopen (tmpfname, "w+")) == NULL) {
+ tmpfp = m_tempfile (tmpfname, sizeof(tmpfname), NONULL(Tempdir), NULL);
+ if (!tmpfp) {
mutt_perror (tmpfname);
mutt_perror (tmpfname);
- fclose (smimeout);
- smimeout = NULL;
- fclose (smimeerr);
- smimeerr = NULL;
+ m_fclose(&smimeout);
+ m_fclose(&smimeerr);
return NULL;
}
return NULL;
}
@@
-1623,16
+1603,13
@@
static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile)
last_pos = m->offset;
mutt_copy_bytes (s->fpin, tmpfp, m->length);
last_pos = m->offset;
mutt_copy_bytes (s->fpin, tmpfp, m->length);
-
- fflush (tmpfp);
- fclose (tmpfp);
+ m_fclose(&tmpfp);
if ((type & ENCRYPT) &&
(thepid = smime_invoke_decrypt (&smimein, NULL, NULL, -1,
fileno (smimeout), fileno (smimeerr),
tmpfname)) == -1) {
if ((type & ENCRYPT) &&
(thepid = smime_invoke_decrypt (&smimein, NULL, NULL, -1,
fileno (smimeout), fileno (smimeerr),
tmpfname)) == -1) {
- fclose (smimeout);
- smimeout = NULL;
+ m_fclose(&smimeout);
mutt_unlink (tmpfname);
if (s->flags & M_DISPLAY)
state_attach_puts (_("[-- Error: unable to create OpenSSL subprocess! --]\n"), s);
mutt_unlink (tmpfname);
if (s->flags & M_DISPLAY)
state_attach_puts (_("[-- Error: unable to create OpenSSL subprocess! --]\n"), s);
@@
-1643,8
+1620,7
@@
static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile)
fileno (smimeout),
fileno (smimeerr), NULL, tmpfname,
SIGNOPAQUE)) == -1) {
fileno (smimeout),
fileno (smimeerr), NULL, tmpfname,
SIGNOPAQUE)) == -1) {
- fclose (smimeout);
- smimeout = NULL;
+ m_fclose(&smimeout);
mutt_unlink (tmpfname);
if (s->flags & M_DISPLAY)
state_attach_puts (_("[-- Error: unable to create OpenSSL subprocess! --]\n"), s);
mutt_unlink (tmpfname);
if (s->flags & M_DISPLAY)
state_attach_puts (_("[-- Error: unable to create OpenSSL subprocess! --]\n"), s);
@@
-1659,7
+1635,7
@@
static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile)
fputc ('\n', smimein);
}
fputc ('\n', smimein);
}
-
fclose (
smimein);
+
m_fclose(&
smimein);
mutt_wait_filter (thepid);
mutt_unlink (tmpfname);
mutt_wait_filter (thepid);
mutt_unlink (tmpfname);
@@
-1691,11
+1667,10
@@
static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile)
if (outFile)
fpout = outFile;
else {
if (outFile)
fpout = outFile;
else {
-
mutt_mktemp (tmptmpfname
);
- if (
(fpout = safe_fopen (tmptmpfname, "w+")) == NULL
) {
+
fpout = m_tempfile (tmptmpfname, sizeof(tmptmpfname), NONULL(Tempdir), NULL
);
+ if (
!fpout
) {
mutt_perror (tmptmpfname);
mutt_perror (tmptmpfname);
- fclose (smimeout);
- smimeout = NULL;
+ m_fclose(&smimeout);
return NULL;
}
}
return NULL;
}
}
@@
-1725,12
+1700,11
@@
static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile)
}
}
}
}
- fclose (smimeout);
- smimeout = NULL;
+ m_fclose(&smimeout);
mutt_unlink (outfile);
if (!outFile) {
mutt_unlink (outfile);
if (!outFile) {
-
fclose (
fpout);
+
m_fclose(&
fpout);
mutt_unlink (tmptmpfname);
}
fpout = NULL;
mutt_unlink (tmptmpfname);
}
fpout = NULL;
@@
-1759,7
+1733,7
@@
static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile)
m->goodsig = p->goodsig;
m->badsig = p->badsig;
}
m->goodsig = p->goodsig;
m->badsig = p->badsig;
}
-
fclose (
smimeerr);
+
m_fclose(&
smimeerr);
return (p);
}
return (p);
}
@@
-1790,9
+1764,9
@@
int smime_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b, BODY ** cur)
s.fpin = fpin;
fseeko (s.fpin, b->offset, 0);
s.fpin = fpin;
fseeko (s.fpin, b->offset, 0);
-
mutt_mktemp (tempfile
);
- if (
(tmpfp = safe_fopen (tempfile, "w+")) == NULL
) {
- mutt_perror (
tempfile
);
+
tmpfp = m_tempfile (tempfile, sizeof(tempfile), NONULL(Tempdir), NULL
);
+ if (
!tmpfp
) {
+ mutt_perror (
_("Can't create temporary file")
);
return (-1);
}
return (-1);
}
@@
-1806,9
+1780,9
@@
int smime_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b, BODY ** cur)
s.fpin = tmpfp;
s.fpout = 0;
s.fpin = tmpfp;
s.fpout = 0;
-
mutt_mktemp (tempfile
);
- if (
(*fpout = safe_fopen (tempfile, "w+")) == NULL
) {
- mutt_perror (
tempfile
);
+
*fpout = m_tempfile (tempfile, sizeof(tempfile), NONULL(Tempdir), NULL
);
+ if (
!*fpout
) {
+ mutt_perror (
_("Can't create temporary file")
);
rv = -1;
goto bail;
}
rv = -1;
goto bail;
}
@@
-1827,7
+1801,7
@@
bail:
b->length = tmplength;
b->offset = tmpoffset;
b->length = tmplength;
b->offset = tmpoffset;
-
safe_fclose
(&tmpfp);
+
m_fclose
(&tmpfp);
if (*fpout)
rewind (*fpout);
return (rv);
if (*fpout)
rewind (*fpout);
return (rv);
@@
-1935,10
+1909,6
@@
int smime_send_menu (HEADER * msg, int *redraw)
/* probably need a different passphrase */
crypt_smime_void_passphrase ();
}
/* probably need a different passphrase */
crypt_smime_void_passphrase ();
}
-#if 0
- else
- msg->security &= ~SIGN;
-#endif
*redraw = REDRAW_FULL;
break;
*redraw = REDRAW_FULL;
break;