X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-crypt%2Fsmime.c;h=d455a3a6eda75390d57b981c1529f0331b71cf32;hp=81bcfb8247f38082fe6aa484ddf49322758fa8d2;hb=23e6291cb5d5b4cd2008403d8b628007fd75ff23;hpb=dbb9a1e16d03a2d4664d6dc6a30c721b889d4982 diff --git a/lib-crypt/smime.c b/lib-crypt/smime.c index 81bcfb8..d455a3a 100644 --- a/lib-crypt/smime.c +++ b/lib-crypt/smime.c @@ -13,23 +13,6 @@ # include "config.h" #endif -#include -#include -#include -#include - -#include - -#include - -#include "mutt.h" -#include "enter.h" -#include "handler.h" -#include "mutt_menu.h" -#include "copy.h" - -#include "lib/debug.h" - #include #include #include @@ -39,17 +22,31 @@ #include #ifdef HAVE_LOCALE_H -#include +# include #endif - #ifdef HAVE_SYS_TIME_H -# include +# include #endif - #ifdef HAVE_SYS_RESOURCE_H -# include +# include #endif +#include +#include +#include +#include + +#include + +#include +#include +#include + +#include "mutt.h" +#include "alias.h" +#include "handler.h" +#include "copy.h" +#include "alias.h" #include "crypt.h" struct smime_command_context { @@ -102,7 +99,7 @@ static char SmimeIntermediateToUse[_POSIX_PATH_MAX]; void smime_void_passphrase (void) { - p_clear(SmimePass, sizeof(SmimePass)); + p_clear(SmimePass, countof(SmimePass)); SmimeExptime = 0; } @@ -134,15 +131,11 @@ int smime_valid_passphrase (void) /* This is almost identical to ppgp's invoking interface. */ -static const char *_mutt_fmt_smime_command (char *dest, - size_t destlen, - char op, - const char *src, - const char *prefix, - const char *ifstring, - const char *elsestring, - unsigned long data, - format_flag flags) +static const char * +_mutt_fmt_smime_command (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) { char fmt[16]; struct smime_command_context *cctx = (struct smime_command_context *) data; @@ -256,13 +249,12 @@ static const char *_mutt_fmt_smime_command (char *dest, -static void mutt_smime_command (char *d, size_t dlen, +static void mutt_smime_command (char *d, ssize_t dlen, struct smime_command_context *cctx, const char *fmt) { mutt_FormatString (d, dlen, NONULL (fmt), _mutt_fmt_smime_command, (unsigned long) cctx, 0); - debug_print (2, ("%s\n", d)); } static pid_t smime_invoke (FILE ** smimein, FILE ** smimeout, @@ -309,7 +301,7 @@ static pid_t smime_invoke (FILE ** smimein, FILE ** smimeout, return certificate file name. */ -static void smime_entry (char *s, size_t l, MUTTMENU * menu, int num) +static void smime_entry (char *s, ssize_t l, MUTTMENU * menu, int num) { smime_id *Table = (smime_id *) menu->data; smime_id this = Table[num]; @@ -349,14 +341,15 @@ static void smime_entry (char *s, size_t l, MUTTMENU * menu, int num) -char *smime_ask_for_key (char *prompt, char *mailbox, short public) +char *smime_ask_for_key (char *prompt, char *mailbox __attribute__((unused)), + short public) { char *fname; smime_id *Table; long cert_num; /* Will contain the number of certificates. * To be able to get it, the .index file will be read twice... */ char index_file[_POSIX_PATH_MAX]; - FILE *index; + FILE *idx; char buf[LONG_STRING]; char fields[5][STRING]; int numFields, hash_suffix, done, cur; /* The current entry */ @@ -371,18 +364,18 @@ char *smime_ask_for_key (char *prompt, char *mailbox, short public) snprintf (index_file, sizeof (index_file), "%s/.index", public ? NONULL (SmimeCertificates) : NONULL (SmimeKeys)); - index = fopen (index_file, "r"); - if (index == NULL) { + idx = fopen (index_file, "r"); + if (idx == NULL) { mutt_perror (index_file); return NULL; } /* Count Lines */ cert_num = 0; - while (!feof (index)) { - if (fgets (buf, sizeof (buf), index)) + while (!feof (idx)) { + if (fgets (buf, sizeof (buf), idx)) cert_num++; } - fclose (index); + fclose (idx); for (;;) { *qry = 0; @@ -392,20 +385,20 @@ char *smime_ask_for_key (char *prompt, char *mailbox, short public) _("S/MIME certificates matching \"%s\"."), qry); - index = fopen (index_file, "r"); - if (index == NULL) { + idx = fopen (index_file, "r"); + if (idx == NULL) { mutt_perror (index_file); return NULL; } /* Read Entries */ cur = 0; Table = p_new(smime_id, cert_num); - while (!feof (index)) { + while (!feof (idx)) { numFields = - fscanf (index, MUTT_FORMAT (STRING) " %x.%i " MUTT_FORMAT (STRING), + fscanf (idx, MUTT_FORMAT (STRING) " %x.%i " MUTT_FORMAT (STRING), fields[0], &hash, &hash_suffix, fields[2]); if (public) - fscanf (index, MUTT_FORMAT (STRING) " " MUTT_FORMAT (STRING) "\n", + fscanf (idx, MUTT_FORMAT (STRING) " " MUTT_FORMAT (STRING) "\n", fields[3], fields[4]); /* 0=email 1=name 2=nick 3=intermediate 4=trust */ @@ -425,7 +418,7 @@ char *smime_ask_for_key (char *prompt, char *mailbox, short public) cur++; } - fclose (index); + fclose (idx); /* Make Helpstring */ helpstr[0] = 0; @@ -720,7 +713,7 @@ void smime_getkeys (ENVELOPE * env) } if (!found && (t = mutt_default_from ())) { _smime_getkeys (t->mailbox); - address_delete (&t); + address_list_wipe(&t); } } @@ -731,8 +724,8 @@ void smime_getkeys (ENVELOPE * env) char *smime_findKeys (address_t * to, address_t * cc, address_t * bcc) { char *keyID, *keylist = NULL; - size_t keylist_size = 0; - size_t keylist_used = 0; + ssize_t keylist_size = 0; + ssize_t keylist_used = 0; address_t *tmp = NULL, *addr = NULL; address_t **last = &tmp; address_t *p, *q; @@ -777,8 +770,8 @@ char *smime_findKeys (address_t * to, address_t * cc, address_t * bcc) if (!keyID) { mutt_message (_("No (valid) certificate found for %s."), q->mailbox); p_delete(&keylist); - address_delete (&tmp); - address_delete (&addr); + address_list_wipe(&tmp); + address_list_wipe(&addr); return NULL; } @@ -787,10 +780,10 @@ char *smime_findKeys (address_t * to, address_t * cc, address_t * bcc) sprintf (keylist + keylist_used, "%s\n", keyID); /* __SPRINTF_CHECKED__ */ keylist_used = m_strlen(keylist); - address_delete (&addr); + address_list_wipe(&addr); } - address_delete (&tmp); + address_list_wipe(&tmp); return (keylist); } @@ -1056,7 +1049,7 @@ static char *smime_extract_signer_certificate (char *infile) /* Add a certificate and update index file (externally). */ -void smime_invoke_import (char *infile, char *mailbox) +void smime_invoke_import (char *infile, char *mailbox __attribute__ ((unused))) { char tmpfname[_POSIX_PATH_MAX], *certfile = NULL, buf[STRING]; FILE *smimein = NULL, *fpout = NULL, *fperr = NULL; @@ -1505,7 +1498,7 @@ int smime_verify_one (BODY * sigbdy, STATE * s, const char *tempfile) int badsig = -1; long tmpoffset = 0; - size_t tmplength = 0; + ssize_t tmplength = 0; int origType = sigbdy->type; char *savePrefix = NULL; @@ -1567,7 +1560,7 @@ int smime_verify_one (BODY * sigbdy, STATE * s, const char *tempfile) else { char *line = NULL; int lineno = 0; - size_t linelen; + ssize_t linelen; fflush (smimeerr); rewind (smimeerr); @@ -1782,7 +1775,7 @@ static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile) if (type & SIGNOPAQUE) { char *line = NULL; int lineno = 0; - size_t linelen; + ssize_t linelen; rewind (smimeerr); @@ -1811,7 +1804,7 @@ int smime_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b, BODY ** cur) char tempfile[_POSIX_PATH_MAX]; STATE s; long tmpoffset = b->offset; - size_t tmplength = b->length; + ssize_t tmplength = b->length; int origType = b->type; FILE *tmpfp = NULL; int rv = 0;