changeset 6950:63e225ab7361 HEAD

If header contains invalid MIME input, preserve the =? in output.
author Timo Sirainen <tss@iki.fi>
date Sat, 08 Dec 2007 15:42:25 +0200
parents eda51f08e8bf
children 1f70c72e4312
files src/lib-mail/message-header-decode.c
diffstat 1 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-mail/message-header-decode.c	Sat Dec 08 15:04:52 2007 +0200
+++ b/src/lib-mail/message-header-decode.c	Sat Dec 08 15:42:25 2007 +0200
@@ -62,7 +62,7 @@
 {
 	buffer_t *decodebuf = NULL;
 	unsigned int charsetlen = 0;
-	size_t pos, start_pos;
+	size_t pos, start_pos, ret;
 
 	/* =?charset?Q|B?text?= */
 	start_pos = pos = 0;
@@ -90,8 +90,13 @@
 		}
 
 		pos += 2;
-		pos += message_header_decode_encoded(data + pos, size - pos,
-						     decodebuf, &charsetlen);
+		ret = message_header_decode_encoded(data + pos, size - pos,
+						    decodebuf, &charsetlen);
+		if (ret == 0) {
+			start_pos = pos-2;
+			continue;
+		}
+		pos += ret;
 
 		if (decodebuf->used > charsetlen) {
 			/* decodebuf contains <charset> NUL <text> */