Mercurial > dovecot > core-2.2
changeset 2574:6dfc352ec61b HEAD
Fixes for handling headers longer than input buffer.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 07 Sep 2004 17:23:25 +0300 |
parents | d10ad1e5a5aa |
children | 4bc0a68a9b72 |
files | src/lib-mail/message-parser.c |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-mail/message-parser.c Tue Sep 07 17:23:01 2004 +0300 +++ b/src/lib-mail/message-parser.c Tue Sep 07 17:23:25 2004 +0300 @@ -759,16 +759,20 @@ /* a) line is larger than input buffer b) header ended unexpectedly */ - if (colon_pos == UINT_MAX && ret == -2) { + if (colon_pos == UINT_MAX && ret == -2 && + !line->continues) { /* header name is huge. just skip it. */ message_skip_line(ctx->input, ctx->hdr_size, TRUE, &ctx->has_nuls); + startpos = 0; continue; } if (ret == -2) { /* go back to last LWSP if found. */ - for (i = size-1; i > colon_pos; i--) { + size_t min_pos = + !line->continues ? colon_pos : 0; + for (i = size-1; i > min_pos; i--) { if (IS_LWSP(msg[i])) { size = i; break;