X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=lib-crypt%2Fcrypt-gpgme.c;h=979016402c0783074894b72909ad8cbd0d582400;hb=26a1babec6628dff14e428def9cff4e92a4ef7c8;hp=c5c698688c4b6aeed8a1330d68ee1bda32fa462b;hpb=5fc6c3e42b91af11aa1323f6cfde4d27bbea9ec8;p=apps%2Fmadmutt.git diff --git a/lib-crypt/crypt-gpgme.c b/lib-crypt/crypt-gpgme.c index c5c6986..9790164 100644 --- a/lib-crypt/crypt-gpgme.c +++ b/lib-crypt/crypt-gpgme.c @@ -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; } @@ -471,8 +467,8 @@ 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); + mutt_perror (_("Can't create temporary file")); + 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) @@ -1006,6 +1002,7 @@ static void show_fingerprint (gpgme_key_t key, STATE * state) int i, is_pgp; char *buf, *p; const char *prefix = _("Fingerprint: "); + ssize_t bufsize; if (!key) return; @@ -1014,8 +1011,9 @@ static void show_fingerprint (gpgme_key_t key, STATE * state) 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 = xmalloc(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++) { @@ -1469,9 +1467,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 +1512,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 +1529,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 +1542,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 +1564,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 +1577,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 +1595,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 +1643,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 +1736,7 @@ static void copy_clearsigned (gpgme_data_t data, STATE * s, char *charset) } fgetconv_close (&fc); - fclose (fp); + m_fclose(&fp); } @@ -1946,7 +1944,7 @@ int pgp_gpgme_application_handler (BODY * m, STATE * s) } if (pgpout) { - safe_fclose (&pgpout); + m_fclose(&pgpout); } } else { @@ -1995,8 +1993,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 +2038,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 +2053,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 +2102,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 +2925,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 +2969,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); @@ -3262,15 +3259,15 @@ static crypt_key_t *crypt_select_key (crypt_key_t * keys, 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; @@ -3652,9 +3649,7 @@ static char *find_keys (address_t * to, address_t * cc, address_t * bcc, last = &((*last)->next); } - if (fqdn) - rfc822_qualify (tmp, fqdn); - + rfc822_qualify(tmp, fqdn); address_list_uniq(tmp); for (p = tmp; p; p = p->next) { @@ -3673,8 +3668,7 @@ static char *find_keys (address_t * to, address_t * cc, address_t * bcc, /* 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 { @@ -3712,7 +3706,7 @@ static char *find_keys (address_t * to, address_t * cc, address_t * bcc, 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); @@ -3870,7 +3864,7 @@ static int verify_sender (HEADER * h, gpgme_protocol_t protocol __attribute__((u 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; } }