dovecot-2.1: imap: Fixed error handling in APPEND parameters.

dovecot at dovecot.org dovecot at dovecot.org
Sun Mar 4 12:50:09 EET 2012


details:   http://hg.dovecot.org/dovecot-2.1/rev/5a62b55914c4
changeset: 14239:5a62b55914c4
user:      Timo Sirainen <tss at iki.fi>
date:      Sun Mar 04 12:50:02 2012 +0200
description:
imap: Fixed error handling in APPEND parameters.

diffstat:

 src/imap/cmd-append.c |  13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diffs (33 lines):

diff -r 509206065d33 -r 5a62b55914c4 src/imap/cmd-append.c
--- a/src/imap/cmd-append.c	Sun Mar 04 12:31:26 2012 +0200
+++ b/src/imap/cmd-append.c	Sun Mar 04 12:50:02 2012 +0200
@@ -227,11 +227,11 @@
 	enum mail_flags flags;
 	const char *const *keywords_list;
 	struct mail_keywords *keywords;
-	const char *internal_date_str;
+	const char *internal_date_str, *msg;
 	time_t internal_date;
 	int ret, timezone_offset;
 	unsigned int save_count;
-	bool nonsync;
+	bool nonsync, fatal;
 
 	if (cmd->cancel) {
 		cmd_append_finish(ctx);
@@ -245,8 +245,13 @@
 	ret = imap_parser_read_args(ctx->save_parser, 0,
 				    IMAP_PARSE_FLAG_LITERAL_SIZE, &args);
 	if (ret == -1) {
-		if (!ctx->failed)
-			client_send_command_error(cmd, NULL);
+		if (!ctx->failed) {
+			msg = imap_parser_get_error(ctx->save_parser, &fatal);
+			if (fatal)
+				client_disconnect_with_error(client, msg);
+			else
+				client_send_command_error(cmd, msg);
+		}
 		cmd_append_finish(ctx);
 		return TRUE;
 	}


More information about the dovecot-cvs mailing list