On Fri, 2003-05-23 at 01:06, Mark E. Mallett wrote:
Maybe Dovecot is parsing the headers wrong in some conditions. Can you reproduce this in some way? The invalid envelope headers are probably cached in index file, deleting that should probably fix this for at least the old messages?
I was able to reproduce it without any effort.
Ah, yes. The "end of header" was treated as duplicate of last header except with empty value. Hmm. Maybe I should also handle differently the cases when same header occurs multiple times.. Or maybe not, RFC2822 doesn't allow them more than once anyway.. Index: message-parser.c =================================================================== RCS file: /home/cvs/dovecot/src/lib-mail/message-parser.c,v retrieving revision 1.39 diff -u -r1.39 message-parser.c --- message-parser.c 3 May 2003 17:28:20 -0000 1.39 +++ message-parser.c 22 May 2003 23:00:04 -0000 @@ -680,7 +680,8 @@ if (size == 0 || (size == 1 && msg[0] == '\r')) { /* end of headers */ line->eoh = TRUE; - line->name_len = line->value_len = 0; + line->name_len = line->value_len = line->full_value_len = 0; + line->name = ""; line->value = line->full_value = NULL; } else if (line->continued) { line->value = msg; line->value_len = size;