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;