]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-index: Fixed fsck handling extension with invalid header size
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 3 Jun 2016 16:58:29 +0000 (19:58 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 3 Jun 2016 16:58:29 +0000 (19:58 +0300)
Fixes:

Panic: file mail-index-sync-ext.c: line 393 (mail_index_sync_ext_init_new): assertion failed: (hdr_buf->used == map->hdr.header_size)

src/lib-index/mail-index-fsck.c

index 850ae93c5d6677b703fb423d9129ecd97b066ea7..8b177885669e8c4d400530994051385b43ab5f5e 100644 (file)
@@ -277,6 +277,7 @@ mail_index_fsck_extensions(struct mail_index *index, struct mail_index_map *map,
                                              "with invalid header size",
                                              i, name);
                        hdr->header_size = offset;
+                       buffer_set_used_size(map->hdr_copy_buf, hdr->header_size);
                        break;
                }
                if (mail_index_map_ext_hdr_check(hdr, ext_hdr, name,
@@ -420,6 +421,7 @@ mail_index_fsck_map(struct mail_index *index, struct mail_index_map *map)
        mail_index_fsck_records(index, map, &hdr);
 
        map->hdr = hdr;
+       i_assert(map->hdr_copy_buf->used == map->hdr.header_size);
 }
 
 int mail_index_fsck(struct mail_index *index)