X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=pgp.c;h=93c773338651e9790fad1dbe433fbf918a4cabcb;hb=4116a7fe5f520ea87f571e1e5a59df4622bb876b;hp=53ff14baa8d13e06b20ad2315e8b8f4b04343440;hpb=f5b0e714a215eddd4d9f8084b434b713f0a580b4;p=apps%2Fmadmutt.git diff --git a/pgp.c b/pgp.c index 53ff14b..93c7733 100644 --- a/pgp.c +++ b/pgp.c @@ -228,7 +228,7 @@ static void pgp_copy_clearsigned (FILE * fpin, STATE * s, char *charset) int pgp_application_pgp_handler (BODY * m, STATE * s) { int needpass = -1, pgp_keyblock = 0; - int c; + int c = 1; int clearsign = 0, rv, rc; long start_pos = 0; long bytes, last_pos, offset; @@ -369,14 +369,18 @@ int pgp_application_pgp_handler (BODY * m, STATE * s) } /* treat empty result as sign of failure */ - rewind (pgpout); - if ((c = fgetc (pgpout)) == EOF) { + if (pgpout) { + rewind (pgpout); + c = fgetc (pgpout); + ungetc (c, pgpout); + } + if (!clearsign && (!pgpout || c == EOF)) { mutt_error _("Could not decrypt PGP message"); + mutt_sleep (1); pgp_void_passphrase (); rc = -1; goto out; } - ungetc (c, pgpout); } /*