The previous behavior was to just silently ignore it and have the next write
to the transaction log silently truncate away the trailing garbage.
Now if the log file isn't locked the issue is still ignored, since it's
possible that this is just a race condition. But if the log is locked,
it's handled as corruption.
file->buffer_offset);
trans_size = mail_index_offset_to_uint32(hdr->size);
if (trans_size == 0) {
- /* unfinished */
- return 1;
+ /* unfinished or corrupted */
+ break;
}
if (trans_size < sizeof(*hdr)) {
*reason_r = t_strdup_printf(