From b643f5f3369eb7db818bbef5df635d642d4f3606 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 27 May 2008 00:12:01 +0300 Subject: [PATCH] mbox: When saving messages buffer the output until it's full, so if we die at the beginning we don't just leave a single From_-line. --HG-- branch : HEAD --- src/lib-storage/index/mbox/mbox-save.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib-storage/index/mbox/mbox-save.c b/src/lib-storage/index/mbox/mbox-save.c index 32c9b2dbae..4d3b9a078a 100644 --- a/src/lib-storage/index/mbox/mbox-save.c +++ b/src/lib-storage/index/mbox/mbox-save.c @@ -328,6 +328,7 @@ mbox_save_init_file(struct mbox_save_context *ctx, ctx->output = o_stream_create_fd_file(mbox->mbox_fd, ctx->append_offset, FALSE); + o_stream_cork(ctx->output); } return 0; } @@ -670,8 +671,10 @@ int mbox_save_finish(struct mail_save_context *_ctx) if (ctx->failed && ctx->mail_offset != (uoff_t)-1) { /* saving this mail failed - truncate back to beginning of it */ + (void)o_stream_flush(ctx->output); if (ftruncate(ctx->mbox->mbox_fd, (off_t)ctx->mail_offset) < 0) mbox_set_syscall_error(ctx->mbox, "ftruncate()"); + o_stream_seek(ctx->output, ctx->mail_offset); ctx->mail_offset = (uoff_t)-1; } -- 2.47.3