Mercurial > dovecot > core-2.2
changeset 14275:5a62b55914c4
imap: Fixed error handling in APPEND parameters.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 04 Mar 2012 12:50:02 +0200 |
parents | 509206065d33 |
children | 9c6eeeb810c0 |
files | src/imap/cmd-append.c |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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; }