Mercurial > dovecot > original-hg > dovecot-1.2
changeset 1288:fa47d787c2aa HEAD
Literal parser broke if \r\n wasn't in buffer at the time '}' was parsed.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 09 Mar 2003 02:35:20 +0200 |
parents | 38b7fe3a596e |
children | c6c7867b2f6f |
files | src/lib-imap/imap-parser.c |
diffstat | 1 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-imap/imap-parser.c Fri Mar 07 02:40:33 2003 +0200 +++ b/src/lib-imap/imap-parser.c Sun Mar 09 02:35:20 2003 +0200 @@ -351,9 +351,7 @@ static int imap_parser_literal_end(struct imap_parser *parser) { - if ((parser->flags & IMAP_PARSE_FLAG_LITERAL_SIZE) != 0) - parser->eol = TRUE; - else { + if ((parser->flags & IMAP_PARSE_FLAG_LITERAL_SIZE) == 0) { if (parser->literal_size > parser->max_literal_size) { /* too long string, abort. */ parser->error = "Literal size too large"; @@ -453,10 +451,12 @@ imap_parser_save_arg(parser, data, (size_t)parser->literal_size); parser->cur_pos = (size_t)parser->literal_size; + parser->eol = TRUE; return TRUE; } } else { /* we want to save only literal size, not the literal itself. */ + parser->eol = TRUE; imap_parser_save_arg(parser, NULL, 0); return TRUE; }