]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
o_stream_send_istream() fix
authorTimo Sirainen <tss@iki.fi>
Sun, 23 May 2004 01:58:24 +0000 (04:58 +0300)
committerTimo Sirainen <tss@iki.fi>
Sun, 23 May 2004 01:58:24 +0000 (04:58 +0300)
--HG--
branch : HEAD

src/lib/ostream-file.c

index 28ec1db79a8324fe51e5f37697584456648cea13..a9e220eb89214fe70822fff2bffa4847f8969950 100644 (file)
@@ -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;