From cc9ea51314197bf314b6b2da2cbb6d20faea3a1b Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Mon, 26 Jan 2009 22:58:30 +0100
Subject: [PATCH] Fixed error in the SMTP message composition that caused
 mixing of CRLF and LF in redirected messages.

---
 src/lib-sieve/rfc2822.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/lib-sieve/rfc2822.c b/src/lib-sieve/rfc2822.c
index ec7fad85e..803794fcc 100644
--- a/src/lib-sieve/rfc2822.c
+++ b/src/lib-sieve/rfc2822.c
@@ -142,22 +142,22 @@ void rfc2822_header_field_write
 		
 		/* Existing newline ? */
 		if ( nlp != NULL ) {
-			/* Replace any sort of newline with proper CRLF */
+			/* Replace any sort of newline with LF */
 			while ( *bp == '\r' || *bp == '\n' )
 				bp++;
 			
 			fwrite(sp, nlp-sp, 1, f);
 			
 			if ( *bp != '\0' && *bp != ' ' && *bp != '\t' )
-				fwrite("\r\n\t", 3, 1, f);
+				fwrite("\n\t", 2, 1, f);
 			else
-				fwrite("\r\n", 2, 1, f);
+				fwrite("\n", 1, 1, f);
 				
 			sp = bp;
 		} else {
 			/* Insert newline at last whitespace within the max_line limit */
 			fwrite(sp, wp-sp, 1, f);
-			fwrite("\r\n", 2, 1, f);
+			fwrite("\n", 1, 1, f);
 			sp = wp;
 		}
 		
@@ -166,8 +166,10 @@ void rfc2822_header_field_write
 		nlp = NULL;
 	}
 	
-	fwrite(sp, bp-sp, 1, f);
-	fwrite("\r\n", 2, 1, f);
+	if ( bp != sp ) {
+		fwrite(sp, bp-sp, 1, f);
+		fwrite("\n", 1, 1, f);
+	}
 }
 
 void rfc2822_header_field_printf
-- 
GitLab