diff options
author | Brendan Cully <brendan@kublai.com> | 2005-08-11 21:16:38 +0000 |
---|---|---|
committer | Brendan Cully <brendan@kublai.com> | 2005-08-11 21:16:38 +0000 |
commit | a281b7cc304ebd981afd04248edff6191d73b686 (patch) | |
tree | 11ff65492f622111dab4ce280427d8127f908165 /crypt-gpgme.c | |
parent | b7cb2829bc6737a010bc841772922a1159bf7fc0 (diff) |
Add error results to mutt_body_handlers, and check them when doing
decode-save. Closes: #1919.
Diffstat (limited to 'crypt-gpgme.c')
-rw-r--r-- | crypt-gpgme.c | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/crypt-gpgme.c b/crypt-gpgme.c index 54773b69..feb28ed9 100644 --- a/crypt-gpgme.c +++ b/crypt-gpgme.c @@ -1882,7 +1882,7 @@ static void copy_clearsigned (gpgme_data_t data, STATE *s, char *charset) /* Support for classic_application/pgp */ -void pgp_gpgme_application_handler (BODY *m, STATE *s) +int pgp_gpgme_application_handler (BODY *m, STATE *s) { int needpass = -1, pgp_keyblock = 0; int clearsign = 0; @@ -1891,7 +1891,7 @@ void pgp_gpgme_application_handler (BODY *m, STATE *s) char buf[HUGE_STRING]; FILE *pgpout = NULL; - gpgme_error_t err; + gpgme_error_t err = 0; gpgme_data_t armored_data = NULL; short maybe_goodsig = 1; @@ -2130,9 +2130,11 @@ void pgp_gpgme_application_handler (BODY *m, STATE *s) { state_attach_puts (_("[-- Error: could not find beginning" " of PGP message! --]\n\n"), s); - return; + return -1; } dprint (2, (debugfile, "Leaving pgp_application_pgp handler\n")); + + return err; } /* @@ -2140,13 +2142,14 @@ void pgp_gpgme_application_handler (BODY *m, STATE *s) */ /* MIME handler for pgp/mime encrypted messages. */ -void pgp_gpgme_encrypted_handler (BODY *a, STATE *s) +int pgp_gpgme_encrypted_handler (BODY *a, STATE *s) { char tempfile[_POSIX_PATH_MAX]; FILE *fpout; BODY *tattach; BODY *orig_body = a; int is_signed; + int rc = 0; dprint (2, (debugfile, "Entering pgp_encrypted handler\n")); a = a->parts; @@ -2158,7 +2161,7 @@ void pgp_gpgme_encrypted_handler (BODY *a, STATE *s) if (s->flags & M_DISPLAY) state_attach_puts (_("[-- Error: malformed PGP/MIME message! --]\n\n"), s); - return; + return -1; } /* Move forward to the application/pgp-encrypted body. */ @@ -2170,7 +2173,7 @@ void pgp_gpgme_encrypted_handler (BODY *a, STATE *s) if (s->flags & M_DISPLAY) state_attach_puts (_("[-- Error: could not create temporary file! " "--]\n"), s); - return; + return -1; } tattach = decrypt_part (a, s, fpout, 0, &is_signed); @@ -2187,7 +2190,7 @@ void pgp_gpgme_encrypted_handler (BODY *a, STATE *s) { FILE *savefp = s->fpin; s->fpin = fpout; - mutt_body_handler (tattach, s); + rc = mutt_body_handler (tattach, s); s->fpin = savefp; } @@ -2214,16 +2217,18 @@ void pgp_gpgme_encrypted_handler (BODY *a, STATE *s) fclose (fpout); mutt_unlink(tempfile); dprint (2, (debugfile, "Leaving pgp_encrypted handler\n")); + + return rc; } /* Support for application/smime */ -void smime_gpgme_application_handler (BODY *a, STATE *s) +int smime_gpgme_application_handler (BODY *a, STATE *s) { char tempfile[_POSIX_PATH_MAX]; FILE *fpout; BODY *tattach; int is_signed; - + int rc = 0; dprint (2, (debugfile, "Entering smime_encrypted handler\n")); @@ -2234,7 +2239,7 @@ void smime_gpgme_application_handler (BODY *a, STATE *s) if (s->flags & M_DISPLAY) state_attach_puts (_("[-- Error: could not create temporary file! " "--]\n"), s); - return; + return -1; } tattach = decrypt_part (a, s, fpout, 1, &is_signed); @@ -2251,7 +2256,7 @@ void smime_gpgme_application_handler (BODY *a, STATE *s) { FILE *savefp = s->fpin; s->fpin = fpout; - mutt_body_handler (tattach, s); + rc = mutt_body_handler (tattach, s); s->fpin = savefp; } @@ -2286,6 +2291,8 @@ void smime_gpgme_application_handler (BODY *a, STATE *s) fclose (fpout); mutt_unlink(tempfile); dprint (2, (debugfile, "Leaving smime_encrypted handler\n")); + + return rc; } |