]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
dbox: Metadata read buffer's size was supposed to be unlimited, not zero.
authorTimo Sirainen <tss@iki.fi>
Fri, 4 May 2012 17:14:20 +0000 (20:14 +0300)
committerTimo Sirainen <tss@iki.fi>
Fri, 4 May 2012 17:14:20 +0000 (20:14 +0300)
This was broken by 59f5238c6e61, which itself had fixed another bug.

src/lib-storage/index/dbox-common/dbox-file.c
src/lib-storage/index/dbox-multi/mdbox-purge.c

index 8b06d711ee925357a53cd07a578bfc566d3be362..a7c4178eacbe1c95e7c1bbf5b45fd9f0a628163f 100644 (file)
@@ -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 */
index 44c4d978e4836e3bdfba32ef5a63b428446d2132..57e8e0e772edf73ec3de9f0ff6e1eede31eba383 100644 (file)
@@ -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 */