dovecot-2.0: mdbox: Use unlimited buffer size when copying metad...
dovecot at dovecot.org
dovecot at dovecot.org
Thu Aug 12 20:50:16 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/a56e9deffa54
changeset: 11994:a56e9deffa54
user: Timo Sirainen <tss at iki.fi>
date: Thu Aug 12 18:50:12 2010 +0100
description:
mdbox: Use unlimited buffer size when copying metadata while purging.
diffstat:
src/lib-storage/index/dbox-multi/mdbox-purge.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diffs (31 lines):
diff -r ae4a82ced01e -r a56e9deffa54 src/lib-storage/index/dbox-multi/mdbox-purge.c
--- a/src/lib-storage/index/dbox-multi/mdbox-purge.c Thu Aug 12 18:47:01 2010 +0100
+++ b/src/lib-storage/index/dbox-multi/mdbox-purge.c Thu Aug 12 18:50:12 2010 +0100
@@ -68,7 +68,7 @@
struct dbox_metadata_header meta_hdr;
const char *line;
const unsigned char *data;
- size_t size;
+ size_t size, buf_size;
int ret;
ret = i_stream_read_data(file->input, &data, &size,
@@ -93,6 +93,9 @@
i_stream_skip(file->input, sizeof(meta_hdr));
if (output != NULL)
o_stream_send(output, &meta_hdr, sizeof(meta_hdr));
+
+ buf_size = i_stream_get_max_buffer_size(file->input);
+ i_stream_set_max_buffer_size(file->input, 0);
while ((line = i_stream_read_next_line(file->input)) != NULL) {
if (*line == DBOX_METADATA_OLDV1_SPACE || *line == '\0') {
/* end of metadata */
@@ -103,6 +106,8 @@
o_stream_send(output, "\n", 1);
}
}
+ i_stream_set_max_buffer_size(file->input, buf_size);
+
if (line == NULL) {
dbox_file_set_corrupted(file, "missing end-of-metadata line");
return 0;
More information about the dovecot-cvs
mailing list