1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-22 04:17:44 +00:00

mail/spamass-milter: Fix a problem where DKIM results would always fail.

Imported a patch submitted to upstream to fix CR/LF handling [1].
Also see [2].

[1] https://savannah.nongnu.org/bugs/index.php?57626
[2] https://bz.apache.org/SpamAssassin/show_bug.cgi?id=7785

Reported by:  Keith Clarke
This commit is contained in:
Bruce A. Mah 2020-02-25 00:42:13 +00:00
parent 8d176ae708
commit 01200a4bdf
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=527056
2 changed files with 28 additions and 1 deletions

View File

@ -3,7 +3,7 @@
PORTNAME= spamass-milter
PORTVERSION= 0.4.0
PORTREVISION= 3
PORTREVISION= 4
CATEGORIES= mail
MASTER_SITES= SAVANNAH/spamass-milt

View File

@ -0,0 +1,27 @@
--- spamass-milter.cpp
+++ spamass-milter.cpp
@@ -1206,7 +1206,23 @@ mlfi_header(SMFICTX* ctx, char* headerf,
assassin->set_subject(headerv);
// assemble header to be written to SpamAssassin
- string header = string(headerf) + ": " + headerv + "\r\n";
+ string header = headerv;
+
+ // Replace all LF with CRLF
+ // As milter documentation says:
+ // headerv Header field value. The content of the header may
+ // include folded white space, i.e., multiple lines with following
+ // white space where lines are separated by LF (not CR/LF). The
+ // trailing line terminator (CR/LF) is removed.
+ // Need to make sure folded header line breaks are sent to SA as CRLF
+ string::size_type idx = header.size();
+ while ( (idx = header.rfind("\n", idx)) != string::npos )
+ {
+ header.replace(idx,1,"\r\n");
+ }
+
+ // final assembly
+ header = string(headerf) + ": " + header + "\r\n";
try {
// write to SpamAssassin client