Mercurial > dovecot > original-hg > dovecot-1.2
changeset 6550:db6afac39fde HEAD
Fixed "file size unexpectedly shrinked" error in some conditions.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 16 Oct 2007 19:22:17 +0300 |
parents | bf5293708132 |
children | 9bdc9ecfc470 |
files | src/lib-storage/index/mbox/istream-raw-mbox.c |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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); }