]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Fixed subscription file reading when file was (nearly) empty.
authorTimo Sirainen <tss@iki.fi>
Thu, 23 Apr 2015 08:20:53 +0000 (11:20 +0300)
committerTimo Sirainen <tss@iki.fi>
Thu, 23 Apr 2015 08:20:53 +0000 (11:20 +0300)
Broken by the earlier changes.

src/lib-storage/list/subscription-file.c

index 8ea0bf44f451c0e4a3b325ccffcac77aacfe34c6..640a7e390483af58a1d0459b10dc865e74aba82f 100644 (file)
@@ -70,10 +70,12 @@ subsfile_list_read_header(struct mailbox_list *list, struct istream *input,
        ret = i_stream_read_data(input, &data, &size, version2_header_len-1);
        if (ret < 0) {
                i_assert(ret == -1);
-               subswrite_set_syscall_error(list, "read()", i_stream_get_name(input));
+               if (input->stream_errno != 0)
+                       subswrite_set_syscall_error(list, "read()", i_stream_get_name(input));
                return;
        }
-       if (memcmp(data, version2_header, version2_header_len) == 0) {
+       if (ret > 0 &&
+           memcmp(data, version2_header, version2_header_len) == 0) {
                *version_r = 2;
                i_stream_skip(input, version2_header_len);
        }