X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=pgp.c;h=4603a94a25450937d7d356260624bf42a634d837;hp=4b586e94991aadc738684d942c865ea03989a493;hb=8e037c67a88cb4680c4391134c578e3b55a80f8a;hpb=c8ceef3ed6424dcb5a6ec835e7d8d9cc00595372 diff --git a/pgp.c b/pgp.c index 4b586e9..4603a94 100644 --- a/pgp.c +++ b/pgp.c @@ -21,6 +21,8 @@ # include "config.h" #endif +#include + #include "mutt.h" #include "enter.h" #include "ascii.h" @@ -161,7 +163,7 @@ static int pgp_copy_checksig (FILE * fpin, FILE * fpout) fputs (line, fpout); fputc ('\n', fpout); } - mem_free (&line); + p_delete(&line); } else { debug_print (2, ("No pattern.\n")); @@ -233,12 +235,13 @@ static void pgp_copy_clearsigned (FILE * fpin, STATE * s, char *charset) int pgp_application_pgp_handler (BODY * m, STATE * s) { + int could_not_decrypt = 0; int needpass = -1, pgp_keyblock = 0; int c = 1; int clearsign = 0, rv, rc; long start_pos = 0; long bytes; - LOFF_T last_pos, offset; + off_t last_pos, offset; char buf[HUGE_STRING]; char outfile[_POSIX_PATH_MAX]; char tmpfname[_POSIX_PATH_MAX]; @@ -383,13 +386,15 @@ int pgp_application_pgp_handler (BODY * m, STATE * s) ungetc (c, pgpout); } if (!clearsign && (!pgpout || c == EOF)) { - mutt_error _("Could not decrypt PGP message"); - mutt_sleep (1); - pgp_void_passphrase (); - if (!(s->flags & M_DISPLAY)) { - rc = -1; - goto out; - } + could_not_decrypt = 1; + pgp_void_passphrase (); + } + + if (could_not_decrypt && !(s->flags & M_DISPLAY)) { + mutt_error _("Could not decrypt PGP message"); + mutt_sleep (1); + rc = -1; + goto out; } } @@ -429,7 +434,10 @@ int pgp_application_pgp_handler (BODY * m, STATE * s) state_putc ('\n', s); if (needpass) { state_attach_puts (_("[-- END PGP MESSAGE --]\n"), s); - mutt_message _("PGP message successfully decrypted."); + if (could_not_decrypt) + mutt_error _("Could not decrypt PGP message."); + else + mutt_message _("PGP message successfully decrypted."); } else if (pgp_keyblock) state_attach_puts (_("[-- END PGP PUBLIC KEY BLOCK --]\n"), s); @@ -1136,7 +1144,7 @@ char *pgp_findKeys (ADDRESS * to, ADDRESS * cc, ADDRESS * bcc) k_info = pgp_getkeybystr (keyID, KEYFLAG_CANENCRYPT, PGP_PUBRING); } else if (r == -1) { - mem_free (&keylist); + p_delete(&keylist); rfc822_free_address (&tmp); rfc822_free_address (&addr); return NULL; @@ -1153,7 +1161,7 @@ char *pgp_findKeys (ADDRESS * to, ADDRESS * cc, ADDRESS * bcc) if ((key = pgp_ask_for_key (buf, q->mailbox, KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL) { - mem_free (&keylist); + p_delete(&keylist); rfc822_free_address (&tmp); rfc822_free_address (&addr); return NULL;