Skip to content

Commit

Permalink
virtual: Make sure sync_mailbox_idx isn't used uninitialized
Browse files Browse the repository at this point in the history
Changing its indexes to start from 1, we can add an assert to check that
it's never the default 0 when we need to use it.
  • Loading branch information
sirainen authored and Timo Sirainen committed Aug 17, 2017
1 parent a7a0f31 commit 9599d7e
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/plugins/virtual/virtual-storage.h
Expand Up @@ -72,7 +72,7 @@ struct virtual_backend_box {
uint32_t mailbox_id;
const char *name;

unsigned int sync_mailbox_idx;
unsigned int sync_mailbox_idx1;
uint32_t sync_uid_validity;
uint32_t sync_next_uid;
uint64_t sync_highest_modseq;
Expand Down
7 changes: 4 additions & 3 deletions src/plugins/virtual/virtual-sync.c
Expand Up @@ -247,7 +247,7 @@ int virtual_mailbox_ext_header_read(struct virtual_mailbox *mbox,
bbox->sync_highest_modseq =
mailboxes[i].highest_modseq;
bbox->sync_next_uid = mailboxes[i].next_uid;
bbox->sync_mailbox_idx = i;
bbox->sync_mailbox_idx1 = i+1;
}
ext_name_offset += mailboxes[i].name_len;
prev_mailbox_id = mailboxes[i].id;
Expand Down Expand Up @@ -306,7 +306,7 @@ static void virtual_sync_ext_header_rewrite(struct virtual_sync_context *ctx)
i_assert(i == 0 ||
bboxes[i]->mailbox_id > bboxes[i-1]->mailbox_id);

bboxes[i]->sync_mailbox_idx = i;
bboxes[i]->sync_mailbox_idx1 = i+1;
mailbox.id = bboxes[i]->mailbox_id;
mailbox.name_len = strlen(bboxes[i]->name);
mailbox.uid_validity = bboxes[i]->sync_uid_validity;
Expand Down Expand Up @@ -1149,8 +1149,9 @@ static void virtual_sync_backend_ext_header(struct virtual_sync_context *ctx,
mailbox.highest_modseq = bbox->ondisk_highest_modseq;
mailbox.next_uid = bbox->sync_next_uid;

i_assert(bbox->sync_mailbox_idx1 > 0);
mailbox_offset = sizeof(struct virtual_mail_index_header) +
bbox->sync_mailbox_idx * sizeof(mailbox);
(bbox->sync_mailbox_idx1-1) * sizeof(mailbox);
mail_index_update_header_ext(ctx->trans, ctx->mbox->virtual_ext_id,
mailbox_offset + uidval_pos,
CONST_PTR_OFFSET(&mailbox, uidval_pos),
Expand Down

0 comments on commit 9599d7e

Please sign in to comment.