Mercurial > dovecot > core-2.2
changeset 5414:3ec03a4c0f26 HEAD
fixes
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 25 Mar 2007 23:26:53 +0300 |
parents | 874210e30dba |
children | 4ba74fec49a4 |
files | src/plugins/fts-squat/squat-trie.c src/plugins/fts-squat/squat-uidlist.c |
diffstat | 2 files changed, 10 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/fts-squat/squat-trie.c Sun Mar 25 21:45:01 2007 +0300 +++ b/src/plugins/fts-squat/squat-trie.c Sun Mar 25 23:26:53 2007 +0300 @@ -1746,7 +1746,7 @@ node_pack_leaf(trie->buf, node); } else { struct trie_node **children8 = NODE_CHILDREN8(node); - struct trie_node **children16 = NODE_CHILDREN16(node, 0); + struct trie_node **children16; if ((ret = squat_trie_compress_children(ctx, children8, node->chars_8bit_count, @@ -1754,6 +1754,8 @@ return -1; if (ret == 0) squat_trie_compress_chars8(node); + + children16 = NODE_CHILDREN16(node, 0); if ((ret = squat_trie_compress_children(ctx, children16, node->chars_16bit_count, level + 1)) < 0)
--- a/src/plugins/fts-squat/squat-uidlist.c Sun Mar 25 21:45:01 2007 +0300 +++ b/src/plugins/fts-squat/squat-uidlist.c Sun Mar 25 23:26:53 2007 +0300 @@ -110,6 +110,11 @@ const struct squat_uidlist_header *hdr, uoff_t file_size) { + if (hdr->used_file_size == 0) { + /* crashed before writing was finished */ + return -1; + } + if (hdr->uidvalidity != uidlist->uidvalidity) { squat_trie_set_corrupted(uidlist->trie, "uidlist: uidvalidity changed"); @@ -277,7 +282,8 @@ uidlist->mmap_disable = mmap_disable; i_array_init(&uidlist->lists, 65536); uidlist->node_pool = - pool_alloconly_create("squat uidlist node pool", 65536); + pool_alloconly_create(MEMPOOL_GROWING"squat uidlist node pool", + 65536); uidlist->tmp_buf = buffer_create_dynamic(default_pool, 16); uidlist->list_buf = buffer_create_dynamic(default_pool, 256); return uidlist;