diff options
author | Eduardo Chappa <chappa@washington.edu> | 2019-05-23 12:20:47 -0600 |
---|---|---|
committer | Eduardo Chappa <chappa@washington.edu> | 2019-05-23 12:20:47 -0600 |
commit | f546ea1d4b8d94b4d4822102ab6f8ed8f1e0104b (patch) | |
tree | bac8032f3813682c81a99d8c1cb66caf4c36606d | |
parent | 09a4760e6cbbda5c22c9935cfbfaadbae380056e (diff) | |
download | alpine-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.hlp | 2 | ||||
-rw-r--r-- | pith/send.c | 17 |
2 files changed, 10 insertions, 9 deletions
diff --git a/pith/pine.hlp b/pith/pine.hlp index 791ab59a..b6232602 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 b7243859..32722a38 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"); |