X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-crypt%2Fsmime.c;h=f5700a2ff983a687248eb61b596d32d2bb2bbb0e;hp=82750c61f8ffbcb793c8bb6b9e328d28443a6ef5;hb=916e4872caf252a5850e64f79427b9dd7808435d;hpb=66b3c35e0bb00392991ce83bbf44cbab0ce3fd78 diff --git a/lib-crypt/smime.c b/lib-crypt/smime.c index 82750c6..f5700a2 100644 --- a/lib-crypt/smime.c +++ b/lib-crypt/smime.c @@ -356,7 +356,7 @@ char *smime_ask_for_key (char *prompt, char *mailbox __attribute__((unused)), if (fgets (buf, sizeof (buf), idx)) cert_num++; } - fclose (idx); + m_fclose(&idx); for (;;) { *qry = 0; @@ -399,7 +399,7 @@ char *smime_ask_for_key (char *prompt, char *mailbox __attribute__((unused)), cur++; } - fclose (idx); + m_fclose(&idx); /* Make Helpstring */ helpstr[0] = 0; @@ -569,7 +569,7 @@ char *smime_get_field_from_db (char *mailbox, char *query, short public, } } - safe_fclose (&fp); + m_fclose(&fp); if (ask) { if (public && *fields[4] == 'u') @@ -787,7 +787,7 @@ static int smime_handle_cert_email (char *certificate, char *mailbox, fpout = m_tempfile (tmpfname, sizeof(tmpfname), NONULL(Tempdir), NULL); if (!fpout) { - fclose (fperr); + m_fclose(&fperr); mutt_perror (tmpfname); return 1; } @@ -798,8 +798,8 @@ static int smime_handle_cert_email (char *certificate, char *mailbox, certificate, NULL, NULL, NULL, NULL, NULL, SmimeGetCertEmailCommand)) == -1) { mutt_message (_("Error: unable to create OpenSSL subprocess!")); - fclose (fperr); - fclose (fpout); + m_fclose(&fperr); + m_fclose(&fpout); return 1; } @@ -847,8 +847,8 @@ static int smime_handle_cert_email (char *certificate, char *mailbox, else if (copy) ret = 2; - fclose (fpout); - fclose (fperr); + m_fclose(&fpout); + m_fclose(&fperr); return ret; } @@ -873,7 +873,7 @@ static char *smime_extract_certificate (char *infile) fpout = m_tempfile (pk7out, sizeof(tmpfname), NONULL(Tempdir), NULL); if (!fpout) { - fclose (fperr); + m_fclose(&fperr); mutt_perror (pk7out); return NULL; } @@ -887,8 +887,8 @@ static char *smime_extract_certificate (char *infile) SmimePk7outCommand)) == -1) { mutt_any_key_to_continue (_ ("Error: unable to create OpenSSL subprocess!")); - fclose (fperr); - fclose (fpout); + m_fclose(&fperr); + m_fclose(&fpout); mutt_unlink (pk7out); return NULL; } @@ -903,19 +903,19 @@ static char *smime_extract_certificate (char *infile) empty = (fgetc (fpout) == EOF); - fclose (fpout); + m_fclose(&fpout); if (empty) { mutt_perror (pk7out); mutt_copy_stream (fperr, stdout); - fclose (fperr); + m_fclose(&fperr); mutt_unlink (pk7out); return NULL; } fpout = m_tempfile (certfile, sizeof(certfile), NONULL(Tempdir), NULL); if (!fpout) { - fclose (fperr); + m_fclose(&fperr); mutt_unlink (pk7out); mutt_perror (certfile); return NULL; @@ -929,8 +929,8 @@ static char *smime_extract_certificate (char *infile) SmimeGetCertCommand)) == -1) { mutt_any_key_to_continue (_ ("Error: unable to create OpenSSL subprocess!")); - fclose (fperr); - fclose (fpout); + m_fclose(&fperr); + m_fclose(&fpout); mutt_unlink (pk7out); mutt_unlink (certfile); return NULL; @@ -947,14 +947,14 @@ static char *smime_extract_certificate (char *infile) empty = (fgetc (fpout) == EOF); if (empty) { mutt_copy_stream (fperr, stdout); - fclose (fpout); - fclose (fperr); + m_fclose(&fpout); + m_fclose(&fperr); mutt_unlink (certfile); return NULL; } - fclose (fpout); - fclose (fperr); + m_fclose(&fpout); + m_fclose(&fperr); return m_strdup(certfile); } @@ -976,7 +976,7 @@ static char *smime_extract_signer_certificate (char *infile) m_tempfile (certfile, sizeof(certfile), NONULL(Tempdir), NULL); if (!fpout) { - fclose (fperr); + m_fclose(&fperr); mutt_perror (certfile); return NULL; } @@ -989,8 +989,8 @@ static char *smime_extract_signer_certificate (char *infile) SmimeGetSignerCertCommand)) == -1) { mutt_any_key_to_continue (_ ("Error: unable to create OpenSSL subprocess!")); - fclose (fperr); - fclose (fpout); + m_fclose(&fperr); + m_fclose(&fpout); mutt_unlink (pk7out); mutt_unlink (certfile); return NULL; @@ -1003,18 +1003,18 @@ static char *smime_extract_signer_certificate (char *infile) rewind (fperr); fflush (fperr); empty = (fgetc (fpout) == EOF); + m_fclose(&fpout); + if (empty) { mutt_endwin (NULL); mutt_copy_stream (fperr, stdout); mutt_any_key_to_continue (NULL); - fclose (fpout); - fclose (fperr); + m_fclose(&fperr); mutt_unlink (certfile); return NULL; } - fclose (fpout); - fclose (fperr); + m_fclose(&fperr); return m_strdup(certfile); } @@ -1036,7 +1036,7 @@ void smime_invoke_import (char *infile, char *mailbox __attribute__ ((unused))) fpout = m_tempfile (tmpfname, sizeof(tmpfname), NONULL(Tempdir), NULL); if (!fpout) { - fclose (fperr); + m_fclose(&fperr); mutt_perror (tmpfname); return; } @@ -1059,7 +1059,7 @@ void smime_invoke_import (char *infile, char *mailbox __attribute__ ((unused))) } fputs (buf, smimein); fputc ('\n', smimein); - fclose (smimein); + m_fclose(&smimein); mutt_wait_filter (thepid); @@ -1075,13 +1075,10 @@ void smime_invoke_import (char *infile, char *mailbox __attribute__ ((unused))) mutt_copy_stream (fpout, stdout); mutt_copy_stream (fperr, stdout); - fclose (fpout); - fclose (fperr); - + m_fclose(&fpout); + m_fclose(&fperr); } - - int smime_verify_sender (HEADER * h) { char *mbox = NULL, *certfile, tempfname[_POSIX_PATH_MAX]; @@ -1102,7 +1099,7 @@ int smime_verify_sender (HEADER * h) mutt_copy_message (fpout, Context, h, 0, 0); fflush (fpout); - fclose (fpout); + m_fclose(&fpout); if (h->env->from) { h->env->from = mutt_expand_aliases (h->env->from); @@ -1197,7 +1194,7 @@ BODY *smime_build_smime_entity (BODY * a, char *certlist) smimeerr = m_tempfile (smimeerrfile, sizeof(smimeerrfile), NONULL(Tempdir), NULL); if (!smimeerr) { mutt_perror (smimeerrfile); - fclose (fpout); + m_fclose(&fpout); mutt_unlink (tempfile); return NULL; } @@ -1207,8 +1204,8 @@ BODY *smime_build_smime_entity (BODY * a, char *certlist) if (!fptmp) { mutt_perror (smimeinfile); mutt_unlink (tempfile); - fclose (fpout); - fclose (smimeerr); + m_fclose(&fpout); + m_fclose(&smimeerr); return NULL; } @@ -1231,19 +1228,19 @@ BODY *smime_build_smime_entity (BODY * a, char *certlist) mutt_write_mime_header (a, fptmp); fputc ('\n', fptmp); mutt_write_mime_body (a, fptmp); - fclose (fptmp); + m_fclose(&fptmp); if ((thepid = smime_invoke_encrypt (&smimein, NULL, NULL, -1, fileno (fpout), fileno (smimeerr), smimeinfile, certfile)) == -1) { - fclose (smimeerr); + m_fclose(&smimeerr); mutt_unlink (smimeinfile); mutt_unlink (certfile); return (NULL); } - fclose (smimein); + m_fclose(&smimein); mutt_wait_filter (thepid); mutt_unlink (smimeinfile); @@ -1252,7 +1249,7 @@ BODY *smime_build_smime_entity (BODY * a, char *certlist) fflush (fpout); rewind (fpout); empty = (fgetc (fpout) == EOF); - fclose (fpout); + m_fclose(&fpout); fflush (smimeerr); rewind (smimeerr); @@ -1260,7 +1257,7 @@ BODY *smime_build_smime_entity (BODY * a, char *certlist) err = 1; fputs (buf, stdout); } - fclose (smimeerr); + m_fclose(&smimeerr); /* pause if there is any error output from SMIME */ if (err) @@ -1322,7 +1319,7 @@ BODY *smime_sign_message (BODY * a) smimeout = m_tempfile (signedfile, sizeof(signedfile), NONULL(Tempdir), NULL); if (!smimeout) { mutt_perror (signedfile); - fclose (sfp); + m_fclose(&sfp); mutt_unlink (filetosign); return NULL; } @@ -1330,7 +1327,7 @@ BODY *smime_sign_message (BODY * a) mutt_write_mime_header (a, sfp); fputc ('\n', sfp); mutt_write_mime_body (a, sfp); - fclose (sfp); + m_fclose(&sfp); @@ -1350,14 +1347,14 @@ BODY *smime_sign_message (BODY * a) filetosign)) == -1) { mutt_perror (_("Can't open OpenSSL subprocess!")); - fclose (smimeout); + m_fclose(&smimeout); mutt_unlink (signedfile); mutt_unlink (filetosign); return NULL; } fputs (SmimePass, smimein); fputc ('\n', smimein); - fclose (smimein); + m_fclose(&smimein); mutt_wait_filter (thepid); @@ -1370,13 +1367,13 @@ BODY *smime_sign_message (BODY * a) err = 1; fputs (buffer, stdout); } - fclose (smimeerr); + m_fclose(&smimeerr); fflush (smimeout); rewind (smimeout); empty = (fgetc (smimeout) == EOF); - fclose (smimeout); + m_fclose(&smimeout); mutt_unlink (filetosign); @@ -1490,7 +1487,7 @@ int smime_verify_one (BODY * sigbdy, STATE * s, const char *tempfile) sigbdy->length = ftello (s->fpout); sigbdy->offset = 0; - fclose (s->fpout); + m_fclose(&s->fpout); /* restore final destination and substitute the tempfile for input */ s->fpout = fp; @@ -1514,8 +1511,7 @@ int smime_verify_one (BODY * sigbdy, STATE * s, const char *tempfile) if ((thepid = smime_invoke_verify (NULL, &smimeout, NULL, -1, -1, fileno (smimeerr), tempfile, signedfile, 0)) != -1) { - fflush (smimeout); - fclose (smimeout); + m_fclose(&smimeout); if (mutt_wait_filter (thepid)) badsig = -1; @@ -1538,7 +1534,7 @@ int smime_verify_one (BODY * sigbdy, STATE * s, const char *tempfile) fflush (smimeerr); rewind (smimeerr); mutt_copy_stream (smimeerr, s->fpout); - fclose (smimeerr); + m_fclose(&smimeerr); state_attach_puts (_("[-- End of OpenSSL output --]\n\n"), s); @@ -1549,7 +1545,7 @@ int smime_verify_one (BODY * sigbdy, STATE * s, const char *tempfile) sigbdy->offset = tmpoffset; /* restore the original source stream */ - fclose (s->fpin); + m_fclose(&s->fpin); s->fpin = fp; @@ -1593,7 +1589,7 @@ static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile) smimeerr = m_tempfile(errfile, sizeof(errfile), NONULL(Tempdir), NULL); if (!smimeerr) { mutt_perror (errfile); - fclose (smimeout); + m_fclose(&smimeout); return NULL; } mutt_unlink (errfile); @@ -1601,8 +1597,8 @@ static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile) tmpfp = m_tempfile (tmpfname, sizeof(tmpfname), NONULL(Tempdir), NULL); if (!tmpfp) { mutt_perror (tmpfname); - fclose (smimeout); - fclose (smimeerr); + m_fclose(&smimeout); + m_fclose(&smimeerr); return NULL; } @@ -1610,16 +1606,13 @@ static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile) last_pos = m->offset; mutt_copy_bytes (s->fpin, tmpfp, m->length); - - fflush (tmpfp); - fclose (tmpfp); + m_fclose(&tmpfp); if ((type & ENCRYPT) && (thepid = smime_invoke_decrypt (&smimein, NULL, NULL, -1, fileno (smimeout), fileno (smimeerr), tmpfname)) == -1) { - fclose (smimeout); - smimeout = NULL; + m_fclose(&smimeout); mutt_unlink (tmpfname); if (s->flags & M_DISPLAY) state_attach_puts (_("[-- Error: unable to create OpenSSL subprocess! --]\n"), s); @@ -1630,8 +1623,7 @@ static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile) fileno (smimeout), fileno (smimeerr), NULL, tmpfname, SIGNOPAQUE)) == -1) { - fclose (smimeout); - smimeout = NULL; + m_fclose(&smimeout); mutt_unlink (tmpfname); if (s->flags & M_DISPLAY) state_attach_puts (_("[-- Error: unable to create OpenSSL subprocess! --]\n"), s); @@ -1646,7 +1638,7 @@ static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile) fputc ('\n', smimein); } - fclose (smimein); + m_fclose(&smimein); mutt_wait_filter (thepid); mutt_unlink (tmpfname); @@ -1681,7 +1673,7 @@ static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile) fpout = m_tempfile (tmptmpfname, sizeof(tmptmpfname), NONULL(Tempdir), NULL); if (!fpout) { mutt_perror (tmptmpfname); - fclose (smimeout); + m_fclose(&smimeout); return NULL; } } @@ -1711,12 +1703,11 @@ static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile) } } - fclose (smimeout); - smimeout = NULL; + m_fclose(&smimeout); mutt_unlink (outfile); if (!outFile) { - fclose (fpout); + m_fclose(&fpout); mutt_unlink (tmptmpfname); } fpout = NULL; @@ -1745,7 +1736,7 @@ static BODY *smime_handle_entity (BODY * m, STATE * s, FILE * outFile) m->goodsig = p->goodsig; m->badsig = p->badsig; } - fclose (smimeerr); + m_fclose(&smimeerr); return (p); } @@ -1813,7 +1804,7 @@ bail: b->length = tmplength; b->offset = tmpoffset; - safe_fclose (&tmpfp); + m_fclose(&tmpfp); if (*fpout) rewind (*fpout); return (rv);