Skip to content

Commit

Permalink
lib-storage: Fix assert-crash on corrupted dovecot.list.index with na…
Browse files Browse the repository at this point in the history
…me_id==0

Fixes:
Panic: file hash.c: line 213 (hash_table_insert_node): assertion failed: (key != NULL)
  • Loading branch information
sirainen committed Feb 21, 2017
1 parent f398b73 commit 95d26b4
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/lib-storage/list/mailbox-list-index.c
Expand Up @@ -241,6 +241,8 @@ mailbox_list_index_generate_name(struct mailbox_list_index *ilist,
guid_128_t guid;
char *name;

i_assert(node->name_id != 0);

guid_128_generate(guid);
name = p_strdup_printf(ilist->mailbox_pool, "%s%s", prefix,
guid_128_to_string(guid));
Expand Down Expand Up @@ -317,6 +319,10 @@ static int mailbox_list_index_parse_records(struct mailbox_list_index *ilist,
irec = data;

node->name_id = irec->name_id;
if (node->name_id == 0) {
/* invalid name_id - assign a new one */
node->name_id = ++ilist->highest_name_id;
}
node->name = hash_table_lookup(ilist->mailbox_names,
POINTER_CAST(irec->name_id));
if (node->name == NULL) {
Expand Down

0 comments on commit 95d26b4

Please sign in to comment.