From f45f472bcb3664232bf21a1ae07ebb0efc3e3b53 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 16 Feb 2018 16:03:46 +0200 Subject: [PATCH] doveadm sync/backup: Don't override BROKENCHAR if it's already set This allows migrating invalid mailbox names by specifying BROKENCHAR. Previously it would always try to use \003 control character, which isn't valid character in mailbox names so the mailbox creation would fail. --- src/doveadm/doveadm-dsync.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/doveadm/doveadm-dsync.c b/src/doveadm/doveadm-dsync.c index 46b5255230..3c73739f45 100644 --- a/src/doveadm/doveadm-dsync.c +++ b/src/doveadm/doveadm-dsync.c @@ -326,8 +326,10 @@ static void doveadm_user_init_dsync(struct mail_user *user) struct mail_namespace *ns; user->dsyncing = TRUE; - for (ns = user->namespaces; ns != NULL; ns = ns->next) - ns->list->set.broken_char = DSYNC_LIST_BROKEN_CHAR; + for (ns = user->namespaces; ns != NULL; ns = ns->next) { + if (ns->list->set.broken_char == '\0') + ns->list->set.broken_char = DSYNC_LIST_BROKEN_CHAR; + } } static bool paths_are_equal(struct mail_user *user1, struct mail_user *user2,