[dovecot-cvs] dovecot/src/lib-mail message-parser.c,1.21,1.22

cras at procontrol.fi cras at procontrol.fi
Fri Oct 25 07:27:58 EEST 2002


Update of /home/cvs/dovecot/src/lib-mail
In directory danu:/tmp/cvs-serv32649

Modified Files:
	message-parser.c 
Log Message:
Header parsing should always keep one character lookahead, so it can see if
header continues in next line. This wasn't done properly.



Index: message-parser.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-mail/message-parser.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- message-parser.c	25 Oct 2002 01:57:20 -0000	1.21
+++ message-parser.c	25 Oct 2002 03:27:56 -0000	1.22
@@ -307,7 +307,7 @@
 			  MessageHeaderFunc func, void *context)
 {
 	const unsigned char *msg;
-	size_t i, size, startpos, missing_cr_count;
+	size_t i, size, parse_size, startpos, missing_cr_count;
 	size_t line_start, colon_pos, end_pos, name_len, value_len;
 	int ret;
 
@@ -334,7 +334,8 @@
 			break;
 		}
 
-		for (i = startpos; i < size; i++) {
+		parse_size = ret > 0 && size > 0 ? size-1 : size;
+		for (i = startpos; i < parse_size; i++) {
 			if (msg[i] == ':' && colon_pos == UINT_MAX) {
 				colon_pos = i;
 				continue;




More information about the dovecot-cvs mailing list