dovecot-2.1: istream: Don't treat max_block_size=0 as unlimited.

dovecot at dovecot.org dovecot at dovecot.org
Wed Jan 4 12:00:24 EET 2012


details:   http://hg.dovecot.org/dovecot-2.1/rev/59f5238c6e61
changeset: 13885:59f5238c6e61
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Jan 04 12:00:13 2012 +0200
description:
istream: Don't treat max_block_size=0 as unlimited.

diffstat:

 src/lib/file-copy.c                |  2 +-
 src/lib/istream.c                  |  5 +++--
 src/plugins/fts-squat/squat-test.c |  2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)

diffs (46 lines):

diff -r 997a2855fd74 -r 59f5238c6e61 src/lib/file-copy.c
--- a/src/lib/file-copy.c	Tue Jan 03 14:42:51 2012 +0200
+++ b/src/lib/file-copy.c	Wed Jan 04 12:00:13 2012 +0200
@@ -69,7 +69,7 @@
 	if (fchown(fd_out, (uid_t)-1, st.st_gid) < 0 && errno != EPERM)
 		i_error("fchown(%s) failed: %m", tmppath);
 
-	input = i_stream_create_fd(fd_in, 0, FALSE);
+	input = i_stream_create_fd(fd_in, IO_BLOCK_SIZE, FALSE);
 	output = o_stream_create_fd_file(fd_out, 0, FALSE);
 
 	while ((ret = o_stream_send_istream(output, input)) > 0) ;
diff -r 997a2855fd74 -r 59f5238c6e61 src/lib/istream.c
--- a/src/lib/istream.c	Tue Jan 03 14:42:51 2012 +0200
+++ b/src/lib/istream.c	Wed Jan 04 12:00:13 2012 +0200
@@ -460,6 +460,8 @@
 {
 	size_t old_size;
 
+	i_assert(stream->max_buffer_size > 0);
+
 	old_size = stream->buffer_size;
 
 	stream->buffer_size = stream->pos + bytes;
@@ -468,8 +470,7 @@
 	else
 		stream->buffer_size = nearest_power(stream->buffer_size);
 
-	if (stream->max_buffer_size > 0 &&
-	    stream->buffer_size > stream->max_buffer_size)
+	if (stream->buffer_size > stream->max_buffer_size)
 		stream->buffer_size = stream->max_buffer_size;
 
 	if (stream->buffer_size <= old_size)
diff -r 997a2855fd74 -r 59f5238c6e61 src/plugins/fts-squat/squat-test.c
--- a/src/plugins/fts-squat/squat-test.c	Tue Jan 03 14:42:51 2012 +0200
+++ b/src/plugins/fts-squat/squat-test.c	Wed Jan 04 12:00:13 2012 +0200
@@ -69,7 +69,7 @@
 		return 1;
 
 	valid = buffer_create_dynamic(default_pool, 4096);
-	input = i_stream_create_fd(fd, 0, FALSE);
+	input = i_stream_create_fd(fd, (size_t)-1, FALSE);
 	ret = 0;
 	while (ret == 0 && (line = i_stream_read_next_line(input)) != NULL) {
 		if (last != input->v_offset/(1024*100)) {


More information about the dovecot-cvs mailing list