projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove reallocs, free and fix makedoc compilation
[apps/madmutt.git]
/
lib-crypt
/
crypt-gpgme.c
diff --git
a/lib-crypt/crypt-gpgme.c
b/lib-crypt/crypt-gpgme.c
index
3c2ded8
..
7e3495b
100644
(file)
--- a/
lib-crypt/crypt-gpgme.c
+++ b/
lib-crypt/crypt-gpgme.c
@@
-12,49
+12,29
@@
* please see the file GPL in the top level source directory.
*/
* please see the file GPL in the top level source directory.
*/
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include <lib-lib/lib-lib.h>
#ifdef CRYPT_BACKEND_GPGME
#ifdef CRYPT_BACKEND_GPGME
-#include <sys/wait.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include <ctype.h>
-
#ifdef HAVE_LOCALE_H
# include <locale.h>
#endif
#ifdef HAVE_LANGINFO_D_T_FMT
# include <langinfo.h>
#endif
#ifdef HAVE_LOCALE_H
# include <locale.h>
#endif
#ifdef HAVE_LANGINFO_D_T_FMT
# include <langinfo.h>
#endif
-#ifdef HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
#ifdef HAVE_SYS_RESOURCE_H
# include <sys/resource.h>
#endif
#include <gpgme.h>
#ifdef HAVE_SYS_RESOURCE_H
# include <sys/resource.h>
#endif
#include <gpgme.h>
-#include <lib-lib/mem.h>
-#include <lib-lib/str.h>
-#include <lib-lib/ascii.h>
-#include <lib-lib/macros.h>
-#include <lib-lib/file.h>
-#include <lib-lib/debug.h>
-
#include <lib-mime/mime.h>
#include <lib-ui/curses.h>
#include <lib-ui/enter.h>
#include <lib-ui/menu.h>
#include <lib-mime/mime.h>
#include <lib-ui/curses.h>
#include <lib-ui/enter.h>
#include <lib-ui/menu.h>
-#include "
mutt
.h"
+#include "
lib
.h"
#include "alias.h"
#include <lib-crypt/crypt.h>
#include "handler.h"
#include "alias.h"
#include <lib-crypt/crypt.h>
#include "handler.h"
@@
-62,6
+42,7
@@
#include "pager.h"
#include "recvattach.h"
#include "sort.h"
#include "pager.h"
#include "recvattach.h"
#include "sort.h"
+#include "crypt-gpgme.h"
/*
* Helper macros.
/*
* Helper macros.
@@
-367,10
+348,9
@@
static gpgme_data_t body_to_data_object (BODY * a, int convert)
int err = 0;
gpgme_data_t data;
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) {
if (!fptmp) {
- mutt_perror (
tempfile
);
+ mutt_perror (
_("Can't create temporary file")
);
return NULL;
}
return NULL;
}
@@
-399,13
+379,11
@@
static gpgme_data_t body_to_data_object (BODY * a, int convert)
buf[0] = c;
gpgme_data_write (data, buf, 1);
}
buf[0] = c;
gpgme_data_write (data, buf, 1);
}
- fclose (fptmp);
gpgme_data_seek (data, 0, SEEK_SET);
gpgme_data_seek (data, 0, SEEK_SET);
- }
- else {
- fclose (fptmp);
+ } else {
err = gpgme_data_new_from_file (&data, tempfile, 1);
}
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));
unlink (tempfile);
if (err) {
mutt_error (_("error allocating data object: %s\n"), gpgme_strerror (err));
@@
-476,10
+454,9
@@
static char *data_object_to_tempfile (gpgme_data_t data, FILE ** ret_fp)
FILE *fp;
ssize_t nread = 0;
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) {
if (!fp) {
- mutt_perror (
tempfile
);
+ mutt_perror (
_("Can't create temporary file")
);
return NULL;
}
return NULL;
}
@@
-490,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) {
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;
}
unlink (tempfile);
return NULL;
}
@@
-500,11
+477,11
@@
static char *data_object_to_tempfile (gpgme_data_t data, FILE ** ret_fp)
if (ret_fp)
rewind (fp);
else
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);
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)
return NULL;
}
if (ret_fp)
@@
-758,34
+735,34
@@
static BODY *sign_message (BODY * a, int use_smime)
return NULL;
}
return NULL;
}
- t =
mutt_new_body
();
+ t =
body_new
();
t->type = TYPEMULTIPART;
t->subtype = m_strdup("signed");
t->encoding = ENC7BIT;
t->use_disp = 0;
t->disposition = DISPINLINE;
t->type = TYPEMULTIPART;
t->subtype = m_strdup("signed");
t->encoding = ENC7BIT;
t->use_disp = 0;
t->disposition = DISPINLINE;
-
mutt_generate_boundary
(&t->parameter);
-
mutt_set_parameter (
"protocol",
-
use_smime ? "application/pkcs7-signature"
-
: "application/pgp-signature", &t->parameter
);
+
parameter_set_boundary
(&t->parameter);
+
parameter_setval(&t->parameter,
"protocol",
+ use_smime ? "application/pkcs7-signature"
+
: "application/pgp-signature"
);
/* Get the micalg from gpgme. Old gpgme versions don't support this
for S/MIME so we assume sha-1 in this case. */
if (!get_micalg (ctx, buf, sizeof buf))
/* Get the micalg from gpgme. Old gpgme versions don't support this
for S/MIME so we assume sha-1 in this case. */
if (!get_micalg (ctx, buf, sizeof buf))
-
mutt_set_parameter ("micalg", buf, &t->parameter
);
+
parameter_setval(&t->parameter, "micalg", buf
);
else if (use_smime)
else if (use_smime)
-
mutt_set_parameter ("micalg", "sha1", &t->parameter
);
+
parameter_setval(&t->parameter, "micalg", "sha1"
);
gpgme_release (ctx);
t->parts = a;
a = t;
gpgme_release (ctx);
t->parts = a;
a = t;
- t->parts->next =
mutt_new_body
();
+ t->parts->next =
body_new
();
t = t->parts->next;
t->type = TYPEAPPLICATION;
if (use_smime) {
t->subtype = m_strdup("pkcs7-signature");
t = t->parts->next;
t->type = TYPEAPPLICATION;
if (use_smime) {
t->subtype = m_strdup("pkcs7-signature");
-
mutt_set_parameter ("name", "smime.p7s", &t->parameter
);
+
parameter_setval(&t->parameter, "name", "smime.p7s"
);
t->encoding = ENCBASE64;
t->use_disp = 1;
t->disposition = DISPATTACH;
t->encoding = ENCBASE64;
t->use_disp = 1;
t->disposition = DISPATTACH;
@@
-845,22
+822,22
@@
BODY *pgp_gpgme_encrypt_message (BODY * a, char *keylist, int sign)
if (!outfile)
return NULL;
if (!outfile)
return NULL;
- t =
mutt_new_body
();
+ t =
body_new
();
t->type = TYPEMULTIPART;
t->subtype = m_strdup("encrypted");
t->encoding = ENC7BIT;
t->use_disp = 0;
t->disposition = DISPINLINE;
t->type = TYPEMULTIPART;
t->subtype = m_strdup("encrypted");
t->encoding = ENC7BIT;
t->use_disp = 0;
t->disposition = DISPINLINE;
-
mutt_generate_boundary
(&t->parameter);
-
mutt_set_parameter ("protocol", "application/pgp-encrypted", &t->parameter
);
+
parameter_set_boundary
(&t->parameter);
+
parameter_setval(&t->parameter, "protocol", "application/pgp-encrypted"
);
- t->parts =
mutt_new_body
();
+ t->parts =
body_new
();
t->parts->type = TYPEAPPLICATION;
t->parts->subtype = m_strdup("pgp-encrypted");
t->parts->encoding = ENC7BIT;
t->parts->type = TYPEAPPLICATION;
t->parts->subtype = m_strdup("pgp-encrypted");
t->parts->encoding = ENC7BIT;
- t->parts->next =
mutt_new_body
();
+ t->parts->next =
body_new
();
t->parts->next->type = TYPEAPPLICATION;
t->parts->next->subtype = m_strdup("octet-stream");
t->parts->next->encoding = ENC7BIT;
t->parts->next->type = TYPEAPPLICATION;
t->parts->next->subtype = m_strdup("octet-stream");
t->parts->next->encoding = ENC7BIT;
@@
-903,11
+880,11
@@
BODY *smime_gpgme_build_smime_entity (BODY * a, char *keylist)
if (!outfile)
return NULL;
if (!outfile)
return NULL;
- t =
mutt_new_body
();
+ t =
body_new
();
t->type = TYPEAPPLICATION;
t->subtype = m_strdup("pkcs7-mime");
t->type = TYPEAPPLICATION;
t->subtype = m_strdup("pkcs7-mime");
-
mutt_set_parameter ("name", "smime.p7m", &t->parameter
);
-
mutt_set_parameter ("smime-type", "enveloped-data", &t->parameter
);
+
parameter_setval(&t->parameter, "name", "smime.p7m"
);
+
parameter_setval(&t->parameter, "smime-type", "enveloped-data"
);
t->encoding = ENCBASE64; /* The output of OpenSSL SHOULD be binary */
t->use_disp = 1;
t->disposition = DISPATTACH;
t->encoding = ENCBASE64; /* The output of OpenSSL SHOULD be binary */
t->use_disp = 1;
t->disposition = DISPATTACH;
@@
-1025,6
+1002,7
@@
static void show_fingerprint (gpgme_key_t key, STATE * state)
int i, is_pgp;
char *buf, *p;
const char *prefix = _("Fingerprint: ");
int i, is_pgp;
char *buf, *p;
const char *prefix = _("Fingerprint: ");
+ ssize_t bufsize;
if (!key)
return;
if (!key)
return;
@@
-1033,8
+1011,9
@@
static void show_fingerprint (gpgme_key_t key, STATE * state)
return;
is_pgp = (key->protocol == GPGME_PROTOCOL_OpenPGP);
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++) {
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++) {
@@
-1314,7
+1293,6
@@
static int verify_one (BODY * sigbdy, STATE * s,
gpgme_release (ctx);
state_attach_puts (_("[-- End signature information --]\n\n"), s);
gpgme_release (ctx);
state_attach_puts (_("[-- End signature information --]\n\n"), s);
- debug_print (1, ("returning %d.\n", badsig));
return badsig ? 1 : anywarn ? 2 : 0;
}
return badsig ? 1 : anywarn ? 2 : 0;
}
@@
-1489,9
+1467,9
@@
int pgp_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b, BODY ** cur)
p_clear(&s, 1);
s.fpin = fpin;
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);
return -1;
}
unlink (tempfile);
@@
-1534,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);
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);
return -1;
}
mutt_unlink (tempfile);
@@
-1551,9
+1529,9
@@
int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
p_clear(&s, 1);
s.fpin = tmpfp;
s.fpout = 0;
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);
return -1;
}
mutt_unlink (tempfile);
@@
-1564,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;
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)) {
rewind (*fpout);
if (*cur && !is_signed && !(*cur)->parts
&& mutt_is_application_smime (*cur)) {
@@
-1586,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);
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);
return -1;
}
mutt_unlink (tempfile);
@@
-1599,14
+1577,14
@@
int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b,
bb->length = ftello (s.fpout);
bb->offset = 0;
rewind (tmpfp);
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;
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);
return -1;
}
mutt_unlink (tempfile);
@@
-1617,9
+1595,9
@@
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;
bb->type = saved_b_type;
bb->length = saved_b_length;
bb->offset = saved_b_offset;
-
fclose (
tmpfp);
+
m_fclose(&
tmpfp);
rewind (*fpout);
rewind (*fpout);
-
mutt_free_body
(cur);
+
body_list_wipe
(cur);
*cur = tmp_b;
}
return *cur ? 0 : -1;
*cur = tmp_b;
}
return *cur ? 0 : -1;
@@
-1665,7
+1643,7
@@
static int pgp_check_traditional_one_body (FILE * fp, BODY * b,
sgn = 1;
}
}
sgn = 1;
}
}
-
safe_fclose
(&tfp);
+
m_fclose
(&tfp);
unlink (tempfile);
if (!enc && !sgn)
unlink (tempfile);
if (!enc && !sgn)
@@
-1673,10
+1651,9
@@
static int pgp_check_traditional_one_body (FILE * fp, BODY * b,
/* fix the content type */
/* fix the content type */
- mutt_set_parameter ("format", "fixed", &b->parameter);
- mutt_set_parameter ("x-action", enc ? "pgp-encrypted" : "pgp-signed",
- &b->parameter);
-
+ parameter_setval(&b->parameter, "format", "fixed");
+ parameter_setval(&b->parameter, "x-action",
+ enc ? "pgp-encrypted" : "pgp-signed");
return 1;
}
return 1;
}
@@
-1719,7
+1696,7
@@
static void copy_clearsigned (gpgme_data_t data, STATE * s, char *charset)
{
char buf[HUGE_STRING];
short complete, armor_header;
{
char buf[HUGE_STRING];
short complete, armor_header;
-
FGETCONV
*fc;
+
fgetconv_t
*fc;
char *fname;
FILE *fp;
char *fname;
FILE *fp;
@@
-1759,7
+1736,7
@@
static void copy_clearsigned (gpgme_data_t data, STATE * s, char *charset)
}
fgetconv_close (&fc);
}
fgetconv_close (&fc);
-
fclose (
fp);
+
m_fclose(&
fp);
}
}
@@
-1782,8
+1759,6
@@
int pgp_gpgme_application_handler (BODY * m, STATE * s)
char body_charset[STRING]; /* Only used for clearsigned messages. */
char body_charset[STRING]; /* Only used for clearsigned messages. */
- debug_print (2, ("Entering pgp_application_pgp handler\n"));
-
/* For clearsigned messages we won't be able to get a character set
but we know that this may only be text thus we assume Latin-1
here. */
/* For clearsigned messages we won't be able to get a character set
but we know that this may only be text thus we assume Latin-1
here. */
@@
-1945,7
+1920,7
@@
int pgp_gpgme_application_handler (BODY * m, STATE * s)
copy_clearsigned (armored_data, s, body_charset);
}
else if (pgpout) {
copy_clearsigned (armored_data, s, body_charset);
}
else if (pgpout) {
-
FGETCONV
*fc;
+
fgetconv_t
*fc;
int c;
rewind (pgpout);
int c;
rewind (pgpout);
@@
-1969,7
+1944,7
@@
int pgp_gpgme_application_handler (BODY * m, STATE * s)
}
if (pgpout) {
}
if (pgpout) {
-
safe_fclose
(&pgpout);
+
m_fclose
(&pgpout);
}
}
else {
}
}
else {
@@
-1987,7
+1962,6
@@
int pgp_gpgme_application_handler (BODY * m, STATE * s)
" of PGP message! --]\n\n"), s);
return (-1);
}
" of PGP message! --]\n\n"), s);
return (-1);
}
- debug_print (2, ("Leaving pgp_application_pgp handler\n"));
return (err);
}
return (err);
}
@@
-2005,7
+1979,6
@@
int pgp_gpgme_encrypted_handler (BODY * a, STATE * s)
int is_signed;
int rc = 0;
int is_signed;
int rc = 0;
- debug_print (2, ("Entering pgp_encrypted handler\n"));
a = a->parts;
if (!a || a->type != TYPEAPPLICATION || !a->subtype
|| ascii_strcasecmp ("pgp-encrypted", a->subtype)
a = a->parts;
if (!a || a->type != TYPEAPPLICATION || !a->subtype
|| ascii_strcasecmp ("pgp-encrypted", a->subtype)
@@
-2020,8
+1993,8
@@
int pgp_gpgme_encrypted_handler (BODY * a, STATE * s)
/* Move forward to the application/pgp-encrypted body. */
a = a->next;
/* 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);
if (s->flags & M_DISPLAY)
state_attach_puts (_("[-- Error: could not create temporary file! "
"--]\n"), s);
@@
-2062,12
+2035,11
@@
int pgp_gpgme_encrypted_handler (BODY * a, STATE * s)
: _("[-- End of PGP/MIME encrypted data --]\n"), s);
}
: _("[-- End of PGP/MIME encrypted data --]\n"), s);
}
-
mutt_free_body
(&tattach);
+
body_list_wipe
(&tattach);
}
}
-
fclose (
fpout);
+
m_fclose(&
fpout);
mutt_unlink (tempfile);
mutt_unlink (tempfile);
- debug_print (2, ("Leaving pgp_encrypted handler\n"));
return (rc);
}
return (rc);
}
@@
-2080,11
+2052,9
@@
int smime_gpgme_application_handler (BODY * a, STATE * s)
int is_signed;
int rc = 0;
int is_signed;
int rc = 0;
- debug_print (2, ("Entering smime_encrypted handler\n"));
-
a->warnsig = 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);
if (s->flags & M_DISPLAY)
state_attach_puts (_("[-- Error: could not create temporary file! "
"--]\n"), s);
@@
-2129,12
+2099,11
@@
int smime_gpgme_application_handler (BODY * a, STATE * s)
_("[-- End of S/MIME encrypted data --]\n"), s);
}
_("[-- End of S/MIME encrypted data --]\n"), s);
}
-
mutt_free_body
(&tattach);
+
body_list_wipe
(&tattach);
}
}
-
fclose (
fpout);
+
m_fclose(&
fpout);
mutt_unlink (tempfile);
mutt_unlink (tempfile);
- debug_print (2, ("Leaving smime_encrypted handler\n"));
return (rc);
}
return (rc);
}
@@
-2956,10
+2925,9
@@
static void verify_key (crypt_key_t * key)
gpgme_key_t k = NULL;
int maxdepth = 100;
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"));
mutt_perror (_("Can't create temporary file"));
-
return;
}
mutt_message _("Collecting data...");
return;
}
mutt_message _("Collecting data...");
@@
-3001,7
+2969,7
@@
static void verify_key (crypt_key_t * key)
leave:
gpgme_key_release (k);
gpgme_release (listctx);
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);
mutt_clear_error ();
snprintf (cmd, sizeof (cmd), _("Key ID: 0x%s"), crypt_keyid (key));
mutt_do_pager (cmd, tempfile, 0, NULL);
@@
-3291,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);
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);
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);
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);
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;
menu = mutt_new_menu ();
menu->max = i;
@@
-3453,13
+3421,8
@@
static crypt_key_t *crypt_getkeybyaddr (address_t * a, short abilities,
if (!keys)
return NULL;
if (!keys)
return NULL;
- debug_print (5, ("looking for %s <%s>.\n", a->personal, a->mailbox));
-
for (k = keys; k; k = k->next) {
for (k = keys; k; k = k->next) {
- debug_print (5, (" looking at key: %s `%.15s'\n", crypt_keyid (k), k->uid));
-
if (abilities && !(k->flags & abilities)) {
if (abilities && !(k->flags & abilities)) {
- debug_print (5, (" insufficient abilities: Has %x, want %x\n", k->flags, abilities));
continue;
}
continue;
}
@@
-3537,7
+3500,7
@@
static crypt_key_t *crypt_getkeybyaddr (address_t * a, short abilities,
}
}
-static crypt_key_t *crypt_getkeybystr (char *p, short abilities,
+static crypt_key_t *crypt_getkeybystr (c
onst c
har *p, short abilities,
unsigned int app, int *forced_valid)
{
string_list_t *hints = NULL;
unsigned int app, int *forced_valid)
{
string_list_t *hints = NULL;
@@
-3563,7
+3526,6
@@
static crypt_key_t *crypt_getkeybystr (char *p, short abilities,
continue;
match = 0;
continue;
match = 0;
- debug_print (5, ("matching \"%s\" against " "key %s, \"%s\":\n", p, crypt_keyid (k), k->uid));
if (!*p || !m_strcasecmp(p, crypt_keyid (k))
|| (!m_strncasecmp(p, "0x", 2)
if (!*p || !m_strcasecmp(p, crypt_keyid (k))
|| (!m_strncasecmp(p, "0x", 2)
@@
-3574,8
+3536,6
@@
static crypt_key_t *crypt_getkeybystr (char *p, short abilities,
|| m_stristr(k->uid, p)) {
crypt_key_t *tmp;
|| m_stristr(k->uid, p)) {
crypt_key_t *tmp;
- debug_print (5, ("match.\n"));
-
*matches_endp = tmp = crypt_copy_key (k);
matches_endp = &tmp->next;
}
*matches_endp = tmp = crypt_copy_key (k);
matches_endp = &tmp->next;
}
@@
-3654,7
+3614,8
@@
static crypt_key_t *crypt_ask_for_key (char *tag,
static char *find_keys (address_t * to, address_t * cc, address_t * bcc,
unsigned int app)
{
static char *find_keys (address_t * to, address_t * cc, address_t * bcc,
unsigned int app)
{
- char *keyID, *keylist = NULL, *t;
+ char *keylist = NULL, *t;
+ const char *keyID;
ssize_t keylist_size = 0;
ssize_t keylist_used = 0;
address_t *tmp = NULL, *addr = NULL;
ssize_t keylist_size = 0;
ssize_t keylist_used = 0;
address_t *tmp = NULL, *addr = NULL;
@@
-3691,7
+3652,7
@@
static char *find_keys (address_t * to, address_t * cc, address_t * bcc,
if (fqdn)
rfc822_qualify (tmp, fqdn);
if (fqdn)
rfc822_qualify (tmp, fqdn);
-
tmp = mutt_remove_duplicates
(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];
@@
-3714,13
+3675,8
@@
static char *find_keys (address_t * to, address_t * cc, address_t * bcc,
q = addr;
}
else {
q = addr;
}
else {
-#if 0
- k_info = crypt_getkeybystr (keyID, KEYFLAG_CANENCRYPT,
- *r_application, &forced_valid);
-#else
k_info = crypt_getkeybystr (keyID, KEYFLAG_CANENCRYPT,
app, &forced_valid);
k_info = crypt_getkeybystr (keyID, KEYFLAG_CANENCRYPT,
app, &forced_valid);
-#endif
}
}
else if (r == -1) {
}
}
else if (r == -1) {
@@
-3737,11
+3693,7
@@
static char *find_keys (address_t * to, address_t * cc, address_t * bcc,
snprintf (buf, sizeof (buf), _("Enter keyID for %s: "), q->mailbox);
if ((key = crypt_ask_for_key (buf, q->mailbox, KEYFLAG_CANENCRYPT,
snprintf (buf, sizeof (buf), _("Enter keyID for %s: "), q->mailbox);
if ((key = crypt_ask_for_key (buf, q->mailbox, KEYFLAG_CANENCRYPT,
-#if 0
- *r_application,
-#else
app,
app,
-#endif
&forced_valid)) == NULL) {
p_delete(&keylist);
address_list_wipe(&tmp);
&forced_valid)) == NULL) {
p_delete(&keylist);
address_list_wipe(&tmp);
@@
-3755,16
+3707,9
@@
static char *find_keys (address_t * to, address_t * cc, address_t * bcc,
{
const char *s = crypt_fpr (key);
{
const char *s = crypt_fpr (key);
-#if 0
- if (key->flags & KEYFLAG_ISX509)
- *r_application &= ~APPLICATION_PGP;
- if (!(key->flags & KEYFLAG_ISX509))
- *r_application &= ~APPLICATION_SMIME;
-#endif
-
keylist_size += m_strlen(s) + 4 + 1;
p_realloc(&keylist, keylist_size);
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);
keylist_used ? " " : "", s, forced_valid ? "!" : "");
}
keylist_used = m_strlen(keylist);
@@
-3855,11
+3800,6
@@
static int gpgme_send_menu (HEADER * msg, int *redraw, int is_smime)
msg->security |= (is_smime ? SMIMESIGN : PGPSIGN);
}
msg->security |= (is_smime ? SMIMESIGN : PGPSIGN);
}
-#if 0
- else {
- msg->security &= (is_smime ? ~SMIMESIGN : ~PGPSIGN);
- }
-#endif
*redraw = REDRAW_FULL;
break;
*redraw = REDRAW_FULL;
break;
@@
-3927,7
+3867,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)
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;
}
}
ret = 0;
}
}