changeset 9367:704917a65a16 HEAD

imap-parser: Don't return early if line ends with CR but there's no LF.
author Timo Sirainen <tss@iki.fi>
date Mon, 25 May 2009 21:22:55 -0400
parents 9297ae2ee45f
children e76d521817d3
files src/lib-imap/imap-parser.c
diffstat 1 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-imap/imap-parser.c	Mon May 25 21:22:47 2009 -0400
+++ b/src/lib-imap/imap-parser.c	Mon May 25 21:22:55 2009 -0400
@@ -453,6 +453,15 @@
 
 		switch (data[0]) {
 		case '\r':
+			if (data_size == 1) {
+				/* wait for LF */
+				return FALSE;
+			}
+			if (data[1] != '\n') {
+				parser->error = "CR sent without LF";
+				return FALSE;
+			}
+			/* fall through */
 		case '\n':
 			/* unexpected end of line */
 			parser->eol = TRUE;