Mercurial > dovecot > core-2.2
changeset 12409:fa62e1a578a0
dsync: Don't assert-crash if trying to convert mailbox whose name is too long.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 09 Nov 2010 21:12:35 +0000 |
parents | 631e0d846e57 |
children | 638db56a53ec |
files | src/dsync/dsync-worker-local.c |
diffstat | 1 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dsync/dsync-worker-local.c Tue Nov 09 21:03:34 2010 +0000 +++ b/src/dsync/dsync-worker-local.c Tue Nov 09 21:12:35 2010 +0000 @@ -1101,6 +1101,14 @@ /* probably some reserved name (e.g. dbox-Mails) */ name = t_strconcat("_", name, NULL); } + if (!mailbox_list_is_valid_create_name(ns->list, name)) { + /* name is too long? just give up and generate a + unique name */ + uint8_t guid[MAIL_GUID_128_SIZE]; + + mail_generate_guid_128(guid); + name = mail_guid_128_to_string(guid); + } i_assert(mailbox_list_is_valid_create_name(ns->list, name)); } return name;