changeset 9486:a04a3ce0764e HEAD

lmtp: Fixes to handling "." correctly in DATA.
author Timo Sirainen <tss@iki.fi>
date Tue, 16 Jun 2009 18:48:14 -0400
parents acbbd522be43
children a33722839adf
files src/lmtp/commands.c
diffstat 1 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/lmtp/commands.c	Tue Jun 16 14:41:02 2009 -0400
+++ b/src/lmtp/commands.c	Tue Jun 16 18:48:14 2009 -0400
@@ -425,15 +425,18 @@
 			}
 		} else if (client->state.data_end_idx == DATA_DOT_NEXT_POS) {
 			/* saw a dot at the beginning of line. drop it. */
-			if (client_input_add(client, data, i-1) < 0) {
+			if (client_input_add(client, data + start,
+					     i - start - 1) < 0) {
 				client_destroy(client, "451 4.3.0",
 					       "Temporary internal failure");
 				return;
 			}
 			start = i;
-			client->state.data_end_idx = 0;
+			client->state.data_end_idx =
+				data[i] == data_end[0] ? 1 : 0;
 		} else {
-			client->state.data_end_idx = 0;
+			client->state.data_end_idx =
+				data[i] == data_end[0] ? 1 : 0;
 		}
 	}
 	if (client->state.data_end_idx >= DATA_DOT_NEXT_POS) {