diff options
Diffstat (limited to 'mail/spamass-milter/files/patch-spamass-milter.cpp')
-rw-r--r-- | mail/spamass-milter/files/patch-spamass-milter.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/mail/spamass-milter/files/patch-spamass-milter.cpp b/mail/spamass-milter/files/patch-spamass-milter.cpp new file mode 100644 index 000000000000..cc0a0e902c3f --- /dev/null +++ b/mail/spamass-milter/files/patch-spamass-milter.cpp @@ -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 |