Mercurial > dovecot > core-2.2
changeset 21237:a0be55f275c5
lib-index: Fix assert-crash after "log file shrank" error.
Fixes:
Panic: file buffer.c: line 316 (buffer_set_used_size): assertion failed: (used_size <= buf->alloc)
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Mon, 28 Nov 2016 13:04:47 +0200 |
parents | dff211013d38 |
children | bfbe1f6b8ab6 |
files | src/lib-index/mail-transaction-log-file.c |
diffstat | 1 files changed, 2 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-transaction-log-file.c Mon Nov 28 12:16:26 2016 +0200 +++ b/src/lib-index/mail-transaction-log-file.c Mon Nov 28 13:04:47 2016 +0200 @@ -1372,6 +1372,8 @@ mail_transaction_log_file_set_corrupted(file, "log file shrank (%"PRIuUOFF_T" < %"PRIuUOFF_T")", file->buffer_offset + (uoff_t)size, file->sync_offset); + /* fix the sync_offset to avoid crashes later on */ + file->sync_offset = file->buffer_offset + size; return -1; } while (file->sync_offset - file->buffer_offset + sizeof(*hdr) <= size) {