dovecot-2.0: istream-base64-encoder: Fixed reading when parent s...
dovecot at dovecot.org
dovecot at dovecot.org
Fri Dec 3 11:23:59 EET 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/e5dcc12f8dba
changeset: 12502:e5dcc12f8dba
user: Timo Sirainen <tss at iki.fi>
date: Fri Dec 03 09:09:10 2010 +0000
description:
istream-base64-encoder: Fixed reading when parent stream returned little data.
diffstat:
src/lib/istream-base64-encoder.c | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)
diffs (23 lines):
diff -r 014a6a0a93cf -r e5dcc12f8dba src/lib/istream-base64-encoder.c
--- 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;
More information about the dovecot-cvs
mailing list