From 5fbc0df492ab5ec7003a005ec8f5b3d5ddfaddd7 Mon Sep 17 00:00:00 2001 From: Brendan Cully Date: Tue, 24 Jun 2008 23:12:02 -0700 Subject: [PATCH] Make multipart decoding a little more forgiving. First, ignore bad content-transfer-encoding in multipart sections. Second, if an attachment fails to decode, print a warning and continue instead of giving up on the entire message. --- ChangeLog | 10 ++++++++++ handler.c | 13 +++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 14f1ca79..fd648f24 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +1970-01-01 00:00 +0000 Brendan Cully (a2e8f6fab8d3) + + * smtp.c: Test that envelope from or from is set before attempting + SMTP delivery. Closes #3079. + +2008-06-14 18:23 -0700 Christoph Berg (4b790909a037) + + * doc/mbox.man: Document that From_ lines use asctime-style dates, + not RFC2822 dates. Closes #3077. + 2008-06-11 22:45 -0700 Alexey I. Froloff (1e8ca708a52f) * attach.c: Do not attempt to close invalid descriptors. Closes #3075 diff --git a/handler.c b/handler.c index d2ad7112..279f38a8 100644 --- a/handler.c +++ b/handler.c @@ -1199,11 +1199,12 @@ int multipart_handler (BODY *a, STATE *s) if (rc) { + mutt_error ("One or more parts of this message could not be displayed"); dprint (1, (debugfile, "Failed on attachment #%d, type %s/%s.\n", count, TYPE(p), NONULL (p->subtype))); } - if (rc || ((s->flags & M_REPLYING) - && (option (OPTINCLUDEONLYFIRST)) && (s->flags & M_FIRSTDONE))) + if ((s->flags & M_REPLYING) + && (option (OPTINCLUDEONLYFIRST)) && (s->flags & M_FIRSTDONE)) break; } @@ -1564,6 +1565,14 @@ int mutt_body_handler (BODY *b, STATE *s) if (!handler) handler = multipart_handler; + + if (b->encoding != ENC7BIT && b->encoding != ENC8BIT + && b->encoding != ENCBINARY) + { + dprint (1, (debugfile, "Bad encoding type %d for multipart entity, " + "assuming 7 bit\n", b->encoding)); + b->encoding = ENC7BIT; + } } else if (WithCrypto && b->type == TYPEAPPLICATION) { -- 2.40.0