dovecot-2.2: imap CATENATE: Do one more mailbox_save_continue() ...
dovecot at dovecot.org
dovecot at dovecot.org
Wed Aug 29 16:55:44 EEST 2012
details: http://hg.dovecot.org/dovecot-2.2/rev/bce550bb2b23
changeset: 14969:bce550bb2b23
user: Timo Sirainen <tss at iki.fi>
date: Wed Aug 29 16:55:33 2012 +0300
description:
imap CATENATE: Do one more mailbox_save_continue() after adding EOF to stream.
Fixes a crash with external mail attachments (mail_attachment_dir).
diffstat:
src/imap/cmd-append.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diffs (17 lines):
diff -r 407ea0cd54ee -r bce550bb2b23 src/imap/cmd-append.c
--- a/src/imap/cmd-append.c Wed Aug 29 16:45:25 2012 +0300
+++ b/src/imap/cmd-append.c Wed Aug 29 16:55:33 2012 +0300
@@ -353,7 +353,12 @@
i_stream_unref(&ctx->input);
ctx->catenate = FALSE;
- if (mailbox_save_finish(&ctx->save_ctx) < 0) {
+ /* do mailbox_save_continue() once more after appending EOF,
+ to finish any pending reads */
+ if (mailbox_save_continue(ctx->save_ctx) < 0) {
+ mailbox_save_cancel(&ctx->save_ctx);
+ ctx->failed = TRUE;
+ } else if (mailbox_save_finish(&ctx->save_ctx) < 0) {
ctx->failed = TRUE;
client_send_storage_error(cmd, ctx->storage);
}
More information about the dovecot-cvs
mailing list