From: Timo Sirainen Date: Fri, 4 May 2012 17:14:20 +0000 (+0300) Subject: dbox: Metadata read buffer's size was supposed to be unlimited, not zero. X-Git-Tag: 2.1.6~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1f85b15e9bfabc5ee390d2cddcfa347a33af8689;p=thirdparty%2Fdovecot%2Fcore.git dbox: Metadata read buffer's size was supposed to be unlimited, not zero. This was broken by 59f5238c6e61, which itself had fixed another bug. --- diff --git a/src/lib-storage/index/dbox-common/dbox-file.c b/src/lib-storage/index/dbox-common/dbox-file.c index 8b06d711ee..a7c4178eac 100644 --- a/src/lib-storage/index/dbox-common/dbox-file.c +++ b/src/lib-storage/index/dbox-common/dbox-file.c @@ -407,7 +407,7 @@ dbox_file_seek_next_at_metadata(struct dbox_file *file, uoff_t *offset) /* skip over the actual metadata */ buf_size = i_stream_get_max_buffer_size(file->input); - i_stream_set_max_buffer_size(file->input, 0); + i_stream_set_max_buffer_size(file->input, (size_t)-1); while ((line = i_stream_read_next_line(file->input)) != NULL) { if (*line == DBOX_METADATA_OLDV1_SPACE || *line == '\0') { /* end of metadata */ @@ -657,7 +657,8 @@ dbox_file_metadata_read_at(struct dbox_file *file, uoff_t metadata_offset) ret = 0; buf_size = i_stream_get_max_buffer_size(file->input); - i_stream_set_max_buffer_size(file->input, 0); + /* use unlimited line length for metadata */ + i_stream_set_max_buffer_size(file->input, (size_t)-1); while ((line = i_stream_read_next_line(file->input)) != NULL) { if (*line == DBOX_METADATA_OLDV1_SPACE || *line == '\0') { /* end of metadata */ diff --git a/src/lib-storage/index/dbox-multi/mdbox-purge.c b/src/lib-storage/index/dbox-multi/mdbox-purge.c index 44c4d978e4..57e8e0e772 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-purge.c +++ b/src/lib-storage/index/dbox-multi/mdbox-purge.c @@ -107,7 +107,8 @@ mdbox_file_metadata_copy(struct dbox_file *file, struct ostream *output) 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); + /* use unlimited line length for metadata */ + i_stream_set_max_buffer_size(file->input, (size_t)-1); while ((line = i_stream_read_next_line(file->input)) != NULL) { if (*line == '\0') { /* end of metadata */ @@ -140,7 +141,8 @@ mdbox_metadata_get_extrefs(struct dbox_file *file, pool_t ext_refs_pool, return ret; buf_size = i_stream_get_max_buffer_size(file->input); - i_stream_set_max_buffer_size(file->input, 0); + /* use unlimited line length for metadata */ + i_stream_set_max_buffer_size(file->input, (size_t)-1); while ((line = i_stream_read_next_line(file->input)) != NULL) { if (*line == '\0') { /* end of metadata */