Mercurial > dovecot > core-2.2
changeset 12502:e5dcc12f8dba
istream-base64-encoder: Fixed reading when parent stream returned little data.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 03 Dec 2010 09:09:10 +0000 |
parents | 014a6a0a93cf |
children | 4455f79f964d |
files | src/lib/istream-base64-encoder.c |
diffstat | 1 files changed, 7 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/istream-base64-encoder.c Fri Dec 03 07:39:13 2010 +0000 +++ b/src/lib/istream-base64-encoder.c Fri Dec 03 09:09:10 2010 +0000 @@ -97,12 +97,15 @@ { struct base64_encoder_istream *bstream = (struct base64_encoder_istream *)stream; - size_t pre_count, post_count; + size_t pre_count, post_count, size; int ret; - ret = i_stream_read_parent(stream); - if (ret <= 0) - return ret; + do { + ret = i_stream_read_parent(stream); + if (ret <= 0) + return ret; + (void)i_stream_get_data(stream->parent, &size); + } while (size < 4 && !stream->parent->eof); /* encode as many lines as fits into destination buffer */ pre_count = stream->pos - stream->skip;