# HG changeset patch # User Timo Sirainen # Date 1192551737 -10800 # Node ID db6afac39fde136e76d50435e8570a7055a2174f # Parent bf5293708132532d63b7c60648bee36bfff5c0f0 Fixed "file size unexpectedly shrinked" error in some conditions. diff -r bf5293708132 -r db6afac39fde src/lib-storage/index/mbox/istream-raw-mbox.c --- a/src/lib-storage/index/mbox/istream-raw-mbox.c Tue Oct 16 17:58:03 2007 +0300 +++ b/src/lib-storage/index/mbox/istream-raw-mbox.c Tue Oct 16 19:22:17 2007 +0300 @@ -287,7 +287,9 @@ new_pos = from_start_pos; } else { /* leave out the beginnings of potential From-line + CR */ - new_pos = i - (fromp - mbox_from) - 1; + new_pos = i - (fromp - mbox_from); + if (new_pos > 0) + new_pos--; } stream->buffer = buf; @@ -481,6 +483,8 @@ i_assert(rstream->body_offset != (uoff_t)-1); if (rstream->mail_size != (uoff_t)-1) { + i_assert(rstream->mail_size > + rstream->body_offset - rstream->hdr_offset); return rstream->mail_size - (rstream->body_offset - rstream->hdr_offset); } @@ -499,6 +503,8 @@ i_stream_skip(stream, size); i_assert(rstream->mail_size != (uoff_t)-1); + i_assert(rstream->mail_size > + rstream->body_offset - rstream->hdr_offset); return rstream->mail_size - (rstream->body_offset - rstream->hdr_offset); }