In some situations the "Cached message size smaller than expected" error
handling could have resulted in:
Panic: file istream.c: line 315 (i_stream_read_memarea): assertion failed: (old_size <= _stream->pos - _stream->skip)
i_stream_mail_set_size_corrupted(mstream, size);
/* istream code expects that the position has not changed
when read error occurs, so move pos back. */
- stream->pos -= size;
+ i_assert(stream->pos >= (size_t)ret);
+ stream->pos -= ret;
return -1;
}
} else if (ret == -1 && stream->istream.eof) {