From 8a3d0935fb63a7e8e4b07f43471a24f8d063204f Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sun, 23 May 2004 04:58:24 +0300 Subject: [PATCH] o_stream_send_istream() fix --HG-- branch : HEAD --- src/lib/ostream-file.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/lib/ostream-file.c b/src/lib/ostream-file.c index 28ec1db79a..a9e220eb89 100644 --- a/src/lib/ostream-file.c +++ b/src/lib/ostream-file.c @@ -701,7 +701,8 @@ static off_t io_stream_copy_backwards(struct _ostream *outstream, (void)i_stream_read_data(instream, &data, &size, read_size-1); - if (size == read_size) { + if (size >= read_size) { + size = read_size; if (instream->mmaped) { /* we'll have to write it through buffer of the file gets corrupted */ @@ -713,15 +714,11 @@ static off_t io_stream_copy_backwards(struct _ostream *outstream, break; } - i_assert(size < read_size); - if (size < read_size) { - /* buffer too large probably, - try with smaller */ - read_size -= size; - in_offset += read_size; - out_offset += read_size; - buffer_size -= read_size; - } + /* buffer too large probably, try with smaller */ + read_size -= size; + in_offset += read_size; + out_offset += read_size; + buffer_size -= read_size; } in_limit -= size; -- 2.47.3