# HG changeset patch # User Timo Sirainen # Date 1191959289 -10800 # Node ID 68c8a6ddde12755d1af0f2379c1255deee2c791c # Parent 2d0b59aeb41a30338a3605fccefa8a6f4d6b2acd Fixes diff -r 2d0b59aeb41a -r 68c8a6ddde12 src/lib/istream-crlf.c --- a/src/lib/istream-crlf.c Tue Oct 09 17:30:07 2007 +0300 +++ b/src/lib/istream-crlf.c Tue Oct 09 22:48:09 2007 +0300 @@ -35,11 +35,15 @@ size_t i, dest, size; ssize_t ret; - ret = i_stream_read(cstream->input); - if (ret <= 0 && ret != -2) { - stream->istream.stream_errno = cstream->input->stream_errno; - stream->istream.eof = cstream->input->eof; - return ret; + data = i_stream_get_data(cstream->input, &size); + if (size <= stream->pos) { + ret = i_stream_read(cstream->input); + if (ret <= 0 && (ret != -2 || stream->skip == 0)) { + stream->istream.stream_errno = + cstream->input->stream_errno; + stream->istream.eof = cstream->input->eof; + return ret; + } } data = i_stream_get_data(cstream->input, &size);