rv = 0;
}
- if (strncmp (line, "[GNUPG:] ", 9) == 0)
+ if (m_strncmp (line, "[GNUPG:] ", 9) == 0)
continue;
fputs (line, fpout);
fputc ('\n', fpout);
if ((thepid = pgp_invoke_decode (&pgpin, NULL, &pgperr, -1,
fileno (pgpout), -1, tmpfname,
needpass)) == -1) {
- safe_fclose (&pgpout);
+ m_fclose(&pgpout);
maybe_goodsig = 0;
pgpin = NULL;
pgperr = NULL;
fprintf (pgpin, "%s\n", PgpPass);
}
- safe_fclose (&pgpin);
+ m_fclose(&pgpin);
if (s->flags & M_DISPLAY) {
crypt_current_time (s, "PGP");
rc = pgp_copy_checksig (pgperr, s->fpout);
}
- safe_fclose (&pgperr);
+ m_fclose(&pgperr);
rv = mutt_wait_filter (thepid);
if (s->flags & M_DISPLAY) {
m->goodsig = (maybe_goodsig && have_any_sigs);
if (tmpfp) {
- safe_fclose (&tmpfp);
+ m_fclose(&tmpfp);
mutt_unlink (tmpfname);
}
if (pgpout) {
- safe_fclose (&pgpout);
+ m_fclose(&pgpout);
mutt_unlink (outfile);
}
char tempfile[_POSIX_PATH_MAX];
char buf[HUGE_STRING];
FILE *tfp;
+ int tempfd;
short sgn = 0;
short enc = 0;
if (tagged_only && !b->tagged)
return 0;
- mutt_mktemp (tempfile);
- if (mutt_decode_save_attachment (fp, b, tempfile, 0, 0) != 0) {
+ tempfd = m_tempfd(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+ if (mutt_decode_save_attachment (fp, b, tempfd, 0) != 0) {
unlink (tempfile);
return 0;
}
- if ((tfp = fopen (tempfile, "r")) == NULL) {
- unlink (tempfile);
+ if (!(tfp = fopen(tempfile, "r"))) {
+ unlink(tempfile);
return 0;
}
key = 1;
}
}
- safe_fclose (&tfp);
+ m_fclose(&tfp);
unlink (tempfile);
if (!enc && !sgn && !key)
fseeko (s->fpin, sigbdy->offset, 0);
mutt_copy_bytes (s->fpin, fp, sigbdy->length);
- fclose (fp);
+ m_fclose(&fp);
pgperr = m_tempfile(pgperrfile, sizeof(pgperrfile), NONULL(Tempdir), NULL);
if (pgperr == NULL) {
badsig = 0;
- safe_fclose (&pgpout);
+ m_fclose(&pgpout);
fflush (pgperr);
rewind (pgperr);
badsig = -1;
}
- safe_fclose (&pgperr);
+ m_fclose(&pgperr);
state_attach_puts (_("[-- End of PGP output --]\n\n"), s);
tempfp = m_tempfile(tempfname, sizeof(tempfname), NONULL(Tempdir), NULL);
if (tempfp == NULL) {
- mutt_perror (tempfname);
+ mutt_perror (_("Can't create temporary file"));
return;
}
mutt_body_handler (top, &s);
- fclose (tempfp);
+ m_fclose(&tempfp);
pgp_invoke_import (tempfname);
mutt_any_key_to_continue (NULL);
int rv;
pgperr = m_tempfile(pgperrfile, sizeof(pgperrfile), NONULL(Tempdir), NULL);
- if (pgperr == NULL) {
+ if (!pgperr) {
mutt_perror (pgperrfile);
return NULL;
}
unlink (pgperrfile);
pgptmp = m_tempfile(pgptmpfile, sizeof(pgptmpfile), NONULL(Tempdir), NULL);
- if (pgptmp == NULL) {
+ if (!pgptmp) {
mutt_perror (pgptmpfile);
- fclose (pgperr);
+ m_fclose(&pgperr);
return NULL;
}
fseeko (s->fpin, a->offset, 0);
mutt_copy_bytes (s->fpin, pgptmp, a->length);
- fclose (pgptmp);
+ m_fclose(&pgptmp);
if ((thepid = pgp_invoke_decrypt (&pgpin, &pgpout, NULL, -1, -1,
fileno (pgperr), pgptmpfile)) == -1) {
- fclose (pgperr);
+ m_fclose(&pgperr);
unlink (pgptmpfile);
if (s->flags & M_DISPLAY)
state_attach_puts (_
if (!pgp_use_gpg_agent ())
fputs (PgpPass, pgpin);
fputc ('\n', pgpin);
- fclose (pgpin);
+ m_fclose(&pgpin);
/* Read the output from PGP, and make sure to change CRLF to LF, otherwise
* read_mime_header has a hard time parsing the message.
while (fgets (buf, sizeof (buf) - 1, pgpout) != NULL) {
len = m_strlen(buf);
if (len > 1 && buf[len - 2] == '\r')
- strcpy (buf + len - 2, "\n"); /* __STRCPY_CHECKED__ */
+ m_strcpy(buf + len - 2, len - 2, "\n");
fputs (buf, fpout);
}
- fclose (pgpout);
+ m_fclose(&pgpout);
rv = mutt_wait_filter (thepid);
mutt_unlink (pgptmpfile);
p->goodsig = 0;
state_attach_puts (_("[-- End of PGP output --]\n\n"), s);
}
- fclose (pgperr);
+ m_fclose(&pgperr);
fflush (fpout);
rewind (fpout);
s.fpin = fpin;
*fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
if (*fpout == NULL) {
- mutt_perror (tempfile);
+ mutt_perror (_("Can't create temporary file"));
return (-1);
}
unlink (tempfile);
rc = -1;
}
- fclose (fpout);
+ m_fclose(&fpout);
mutt_unlink (tempfile);
return (rc);
sfp = m_tempfile(signedfile, sizeof(signedfile), NONULL(Tempdir), NULL);
if (sfp == NULL) {
mutt_perror (signedfile);
- fclose (fp);
+ m_fclose(&fp);
unlink (sigfile);
return NULL;
}
mutt_write_mime_header (a, sfp);
fputc ('\n', sfp);
mutt_write_mime_body (a, sfp);
- fclose (sfp);
+ m_fclose(&sfp);
if ((thepid = pgp_invoke_sign (&pgpin, &pgpout, &pgperr,
-1, -1, -1, signedfile)) == -1) {
mutt_perror (_("Can't open PGP subprocess!"));
- fclose (fp);
+ m_fclose(&fp);
unlink (sigfile);
unlink (signedfile);
return NULL;
if (!pgp_use_gpg_agent ())
fputs (PgpPass, pgpin);
fputc ('\n', pgpin);
- fclose (pgpin);
+ m_fclose(&pgpin);
/*
* Read back the PGP signature. Also, change MESSAGE=>SIGNATURE as
if (mutt_wait_filter (thepid) && option (OPTPGPCHECKEXIT))
empty = 1;
- fclose (pgperr);
- fclose (pgpout);
+ m_fclose(&pgperr);
+ m_fclose(&pgpout);
unlink (signedfile);
- if (fclose (fp) != 0) {
+ if (m_fclose(&fp) != 0) {
mutt_perror ("fclose");
unlink (sigfile);
return (NULL);
static short is_numerical_keyid (const char *s)
{
/* or should we require the "0x"? */
- if (strncmp (s, "0x", 2) == 0)
+ if (m_strncmp (s, "0x", 2) == 0)
s += 2;
if (m_strlen(s) % 8)
return 0;
last = &((*last)->next);
}
- if (fqdn)
- rfc822_qualify (tmp, fqdn);
+ rfc822_qualify (tmp, fqdn);
address_list_uniq(tmp);
p->mailbox);
if ((r = mutt_yesorno (buf, M_YES)) == M_YES) {
if (is_numerical_keyid (keyID)) {
- if (strncmp (keyID, "0x", 2) == 0)
+ if (m_strncmp (keyID, "0x", 2) == 0)
keyID += 2;
goto bypass_selection; /* you don't see this. */
}
/* check for e-mail address */
if ((t = strchr (keyID, '@')) &&
(addr = rfc822_parse_adrlist (NULL, keyID))) {
- if (fqdn)
- rfc822_qualify (addr, fqdn);
+ rfc822_qualify (addr, fqdn);
q = addr;
}
else
bypass_selection:
keylist_size += m_strlen(keyID) + 4;
p_realloc(&keylist, keylist_size);
- sprintf (keylist + keylist_used, "%s0x%s", keylist_used ? " " : "", /* __SPRINTF_CHECKED__ */
+ sprintf (keylist + keylist_used, "%s0x%s", keylist_used ? " " : "",
keyID);
keylist_used = m_strlen(keylist);
fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
if (fpout == NULL) {
- mutt_perror (tempfile);
+ mutt_perror (_("Can't create temporary file"));
return (NULL);
}
pgperr = m_tempfile(pgperrfile, sizeof(pgperrfile), NONULL(Tempdir), NULL);
if (pgperr == NULL) {
mutt_perror (pgperrfile);
- fclose (fpout);
+ m_fclose(&fpout);
unlink (tempfile);
return NULL;
}
fptmp = m_tempfile(pgpinfile, sizeof(pgpinfile), NONULL(Tempdir), NULL);
if (fptmp == NULL) {
mutt_perror (pgpinfile);
- fclose (fpout);
+ m_fclose(&fpout);
unlink (tempfile);
- fclose (pgperr);
+ m_fclose(&pgperr);
unlink (pgperrfile);
return NULL;
}
mutt_write_mime_header (a, fptmp);
fputc ('\n', fptmp);
mutt_write_mime_body (a, fptmp);
- fclose (fptmp);
+ m_fclose(&fptmp);
if ((thepid = pgp_invoke_encrypt (&pgpin, NULL, NULL, -1,
fileno (fpout), fileno (pgperr),
pgpinfile, keylist, sign)) == -1) {
- fclose (pgperr);
+ m_fclose(&pgperr);
unlink (pgpinfile);
return (NULL);
}
fputs (PgpPass, pgpin);
fputc ('\n', pgpin);
}
- fclose (pgpin);
+ m_fclose(&pgpin);
if (mutt_wait_filter (thepid) && option (OPTPGPCHECKEXIT))
empty = 1;
rewind (fpout);
if (!empty)
empty = (fgetc (fpout) == EOF);
- fclose (fpout);
+ m_fclose(&fpout);
fflush (pgperr);
rewind (pgperr);
err = 1;
fputs (buf, stdout);
}
- fclose (pgperr);
+ m_fclose(&pgperr);
/* pause if there is any error output from PGP */
if (err)
pgpin = m_tempfile(pgpinfile, sizeof(pgpinfile), NONULL(Tempdir), NULL);
if (pgpin == NULL) {
mutt_perror (pgpinfile);
- fclose (fp);
+ m_fclose(&fp);
return NULL;
}
send_charset = "us-ascii";
mutt_copy_stream (fp, pgpin);
}
- safe_fclose (&fp);
- fclose (pgpin);
+ m_fclose(&fp);
+ m_fclose(&pgpin);
pgpout = m_tempfile(pgpoutfile, sizeof(pgpoutfile), NONULL(Tempdir), NULL);
pgperr = m_tempfile(pgperrfile, sizeof(pgperrfile), NONULL(Tempdir), NULL);
if (pgpout == NULL || pgperr == NULL) {
mutt_perror (pgpout ? pgperrfile : pgpoutfile);
- fclose (pgpin);
+ m_fclose(&pgpin);
unlink (pgpinfile);
- if (pgpout) {
- fclose (pgpout);
- unlink (pgpoutfile);
- }
+ m_fclose(&pgpout);
+ unlink (pgpoutfile);
+ m_fclose(&pgperr);
+ unlink(pgperrfile);
return NULL;
}
pgpinfile, keylist, flags)) == -1) {
mutt_perror (_("Can't invoke PGP"));
- fclose (pgpout);
- fclose (pgperr);
+ m_fclose(&pgpout);
+ m_fclose(&pgperr);
mutt_unlink (pgpinfile);
unlink (pgpoutfile);
return NULL;
*PgpPass = 0;
if (flags & SIGN)
fprintf (pgpin, "%s\n", PgpPass);
- fclose (pgpin);
+ m_fclose(&pgpin);
if (mutt_wait_filter (thepid) && option (OPTPGPCHECKEXIT))
empty = 1;
if (!empty)
empty = (fgetc (pgpout) == EOF);
- fclose (pgpout);
+ m_fclose(&pgpout);
err = 0;
fputs (buff, stdout);
}
- fclose (pgperr);
+ m_fclose(&pgperr);
if (err)
mutt_any_key_to_continue (NULL);
int pgp_send_menu (HEADER * msg, int *redraw)
{
pgp_key_t p;
- char input_signas[SHORT_STRING];
+ char input_signas[STRING];
char prompt[LONG_STRING];
crypt_pgp_void_passphrase (); /* probably need a different passphrase */
}
-#if 0
- else {
- msg->security &= ~SIGN;
- }
-#endif
*redraw = REDRAW_FULL;
break;