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;
}
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));
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;
}
while ((nread = gpgme_data_read (data, buf, sizeof (buf)))) {
if (fwrite (buf, nread, 1, fp) != 1) {
- mutt_perror (tempfile);
- fclose (fp);
+ mutt_perror (_("Can't create temporary file"));
+ m_fclose(&fp);
unlink (tempfile);
return NULL;
}
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)
int i, is_pgp;
char *buf, *p;
const char *prefix = _("Fingerprint: ");
+ ssize_t bufsize;
if (!key)
return;
return;
is_pgp = (key->protocol == GPGME_PROTOCOL_OpenPGP);
- buf = xmalloc(m_strlen(prefix) + m_strlen(s) * 4 + 2);
- strcpy (buf, prefix); /* __STRCPY_CHECKED__ */
+ bufsize = m_strlen(prefix) + m_strlen(s) * 4 + 2;
+ buf = p_new(char, bufsize);
+ m_strcpy(buf, bufsize, prefix);
p = buf + m_strlen(buf);
if (is_pgp && m_strlen(s) == 40) { /* PGP v4 style formatted. */
for (i = 0; *s && s[1] && s[2] && s[3] && s[4]; s += 4, i++) {
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);
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);
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);
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)) {
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);
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);
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;
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) {
+ if ((tfp = fopen(tempfile, "r")) == NULL) {
unlink (tempfile);
return 0;
}
}
fgetconv_close (&fc);
- fclose (fp);
+ m_fclose(&fp);
}
/* 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);
body_list_wipe(&tattach);
}
- fclose (fpout);
+ m_fclose(&fpout);
mutt_unlink (tempfile);
return (rc);
}
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);
body_list_wipe(&tattach);
}
- fclose (fpout);
+ m_fclose(&fpout);
mutt_unlink (tempfile);
return (rc);
}
static const char *
crypt_entry_fmt (char *dest, ssize_t destlen, char op,
const char *src, const char *prefix,
- const char *ifstring, const char *elsestring,
- unsigned long data, format_flag flags)
+ const char *ifstr, const char *elstr,
+ anytype data, format_flag flags)
{
char fmt[16];
crypt_entry_t *entry;
const char *s = NULL;
unsigned long val;
- entry = (crypt_entry_t *) data;
+ entry = data.ptr;
key = entry->key;
/* if (isupper ((unsigned char) op)) */
case '[':
{
const char *cp;
- char buf2[SHORT_STRING], *p;
+ char buf2[STRING], *p;
int do_locales;
struct tm *tm;
ssize_t len;
*dest = '\0';
}
- if (optional)
- mutt_FormatString (dest, destlen, ifstring, mutt_attach_fmt, data, 0);
- else if (flags & M_FORMAT_OPTIONAL)
- mutt_FormatString (dest, destlen, elsestring, mutt_attach_fmt, data, 0);
- return (src);
+ if (flags & M_FORMAT_OPTIONAL)
+ m_strformat(dest, destlen, 0, optional ? ifstr: elstr,
+ mutt_attach_fmt, data, 0);
+ return src;
}
/* Used by the display fucntion to format a line. */
entry.key = key_table[num];
entry.num = num + 1;
- mutt_FormatString (s, l, NONULL (PgpEntryFormat), crypt_entry_fmt,
- (unsigned long) &entry, M_FORMAT_ARROWCURSOR);
+ m_strformat(s, l, COLS - SW, PgpEntryFormat, crypt_entry_fmt, &entry,
+ option(OPTARROWCURSOR) ? M_FORMAT_ARROWCURSOR : 0);
}
/* Compare two addresses and the keyid to be used for sorting. */
if (!n || (n & 1))
return NULL; /* empty or odd number of digits */
n /= 2;
- p = xmalloc(n + 1);
+ p = p_new(unsigned char, n + 1);
array->value = (char *) p;
for (s1 = string; n; s1 += 2, n--)
*p++ = xtoi_2 (s1);
n++;
}
- p = xmalloc(n + 1);
+ p = p_new(unsigned char, n + 1);
array->value = (char *) p;
for (s = string; n; s++, n--) {
if (*s == '\\') {
const char *s = NULL, *s2 = NULL;
time_t tt = 0;
struct tm *tm;
- char shortbuf[SHORT_STRING];
+ char shortbuf[STRING];
unsigned long aval = 0;
const char *delim;
int is_pgp = 0;
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...");
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);
crypt_key_t **key_table;
MUTTMENU *menu;
int i, done = 0;
- char helpstr[SHORT_STRING], buf[LONG_STRING];
+ char helpstr[STRING], buf[LONG_STRING];
crypt_key_t *k;
int (*f) (const void *, const void *);
int menu_to_use = 0;
helpstr[0] = 0;
mutt_make_help (buf, sizeof (buf), _("Exit "), menu_to_use, OP_EXIT);
- strcat (helpstr, buf); /* __STRCAT_CHECKED__ */
+ m_strcat(helpstr, sizeof(helpstr), buf);
mutt_make_help (buf, sizeof (buf), _("Select "), menu_to_use,
OP_GENERIC_SELECT_ENTRY);
- strcat (helpstr, buf); /* __STRCAT_CHECKED__ */
+ m_strcat(helpstr, sizeof(helpstr), buf);
mutt_make_help (buf, sizeof (buf), _("Check key "),
menu_to_use, OP_VERIFY_KEY);
- strcat (helpstr, buf); /* __STRCAT_CHECKED__ */
+ m_strcat(helpstr, sizeof(helpstr), buf);
mutt_make_help (buf, sizeof (buf), _("Help"), menu_to_use, OP_HELP);
- strcat (helpstr, buf); /* __STRCAT_CHECKED__ */
+ m_strcat(helpstr, sizeof(helpstr), buf);
menu = mutt_new_menu ();
menu->max = i;
unsigned int app, int *forced_valid)
{
crypt_key_t *key;
- char resp[SHORT_STRING];
+ char resp[STRING];
struct crypt_cache *l = NULL;
int dummy;
last = &((*last)->next);
}
- if (fqdn)
- rfc822_qualify (tmp, fqdn);
-
+ rfc822_qualify(tmp, fqdn);
address_list_uniq(tmp);
for (p = tmp; p; p = p->next) {
/* 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 {
keylist_size += m_strlen(s) + 4 + 1;
p_realloc(&keylist, keylist_size);
- sprintf (keylist + keylist_used, "%s0x%s%s", /* __SPRINTF_CHECKED__ */
+ sprintf (keylist + keylist_used, "%s0x%s%s",
keylist_used ? " " : "", s, forced_valid ? "!" : "");
}
keylist_used = m_strlen(keylist);
static int gpgme_send_menu (HEADER * msg, int *redraw, int is_smime)
{
crypt_key_t *p;
- char input_signas[SHORT_STRING];
+ char input_signas[STRING];
int choice;
if (msg->security & APPLICATION_PGP)
if (1 && (uid->email[0] == '<')
&& (uid->email[uid_length - 1] == '>')
&& (uid_length == sender_length + 2)
- && (!strncmp (uid->email + 1, sender->mailbox, sender_length)))
+ && (!m_strncmp (uid->email + 1, sender->mailbox, sender_length)))
ret = 0;
}
}