summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Chappa <chappa@washington.edu>2019-05-23 12:20:47 -0600
committerEduardo Chappa <chappa@washington.edu>2019-05-23 12:20:47 -0600
commitf546ea1d4b8d94b4d4822102ab6f8ed8f1e0104b (patch)
treebac8032f3813682c81a99d8c1cb66caf4c36606d
parent09a4760e6cbbda5c22c9935cfbfaadbae380056e (diff)
downloadalpine-f546ea1d4b8d94b4d4822102ab6f8ed8f1e0104b.tar.xz
* Experimental: Attempt to fix a "digest failure" in which Alpine
fails to add a trailing line to signed text. Reported by Stefan Mueller.
-rw-r--r--pith/pine.hlp2
-rw-r--r--pith/send.c17
2 files changed, 10 insertions, 9 deletions
diff --git a/pith/pine.hlp b/pith/pine.hlp
index 791ab59..b623260 100644
--- a/pith/pine.hlp
+++ b/pith/pine.hlp
@@ -140,7 +140,7 @@ with help text for the config screen and the composer that didn't have any
reasonable place to be called from.
Dummy change to get revision in pine.hlp
============= h_revision =================
-Alpine Commit 340 2019-05-23 11:39:32
+Alpine Commit 341 2019-05-23 12:20:34
============= h_news =================
<HTML>
<HEAD>
diff --git a/pith/send.c b/pith/send.c
index b724385..32722a3 100644
--- a/pith/send.c
+++ b/pith/send.c
@@ -4315,9 +4315,6 @@ pine_rfc822_output_body(struct mail_bodystruct *body, soutr_t f, void *s)
* they should expect weirdness. We do not add this when signing a
* message, though...
*/
-#ifdef SMIME
- if(ps_global->smime && !ps_global->smime->do_sign)
-#endif
if(f && !(*f)(s, " This message is in MIME format. The first part should be readable text,\015\012 while the remaining parts are likely unreadable without MIME-aware tools.\015\012\015\012"))
return(0);
@@ -4331,15 +4328,19 @@ pine_rfc822_output_body(struct mail_bodystruct *body, soutr_t f, void *s)
|| !pine_write_body_header(&part->body,f,s)
|| !pine_rfc822_output_body (&part->body,f,s))
return(0);
+#ifdef SMIME
+ if(part == body->nested.part
+ && ps_global->smime
+ && ps_global->smime->do_sign
+ && ((f && !(*f)(s, "\015\012"))
+ || (lmc.so && !lmc.all_written && !so_puts(lmc.so, "\015\012"))))
+ return 0;
+#endif /* SMIME */
} while ((part = part->next) != NULL); /* until done */
/* output trailing cookie */
snprintf (t = tmp, sizeof(tmp), "--%s--",cookie);
tmp[sizeof(tmp)-1] = '\0';
-#ifdef SMIME
- if(ps_global->smime && ps_global->smime->do_sign
- && strlen(tmp) < sizeof(tmp)-2)
- strncat(tmp, "\r\n", 2);
-#endif
+
if(lmc.so && !lmc.all_written){
so_puts(lmc.so, t);
so_puts(lmc.so, "\015\012");