]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
i_stream_grow_buffer(): Never shrink the buffer.
authorTimo Sirainen <tss@iki.fi>
Fri, 12 Feb 2010 21:29:31 +0000 (23:29 +0200)
committerTimo Sirainen <tss@iki.fi>
Fri, 12 Feb 2010 21:29:31 +0000 (23:29 +0200)
--HG--
branch : HEAD

src/lib/istream.c

index f5972f4e9f7205bd816b06f123757181910b680e..1d93c2358359f22fc348ab16a8db1944d19fbb87 100644 (file)
@@ -432,8 +432,13 @@ void i_stream_grow_buffer(struct istream_private *stream, size_t bytes)
            stream->buffer_size > stream->max_buffer_size)
                stream->buffer_size = stream->max_buffer_size;
 
-       stream->buffer = stream->w_buffer =
-               i_realloc(stream->w_buffer, old_size, stream->buffer_size);
+       if (stream->buffer_size <= old_size)
+               stream->buffer_size = old_size;
+       else {
+               stream->w_buffer = i_realloc(stream->w_buffer, old_size,
+                                            stream->buffer_size);
+               stream->buffer = stream->w_buffer;
+       }
 }
 
 bool i_stream_get_buffer_space(struct istream_private *stream,