If a non-user mailbox is being considered for promotion to a USER event in sync_client, it trys to xstrdup the folder name starting at the user name - except that's a NULL string and it segfaults.
This patch tests the result of mboxname_isusermailbox in the conditional instead, and then makes the copy only if it's non-NULL. --- imap/sync_client.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/imap/sync_client.c b/imap/sync_client.c index d62c833..8a70974 100644 --- a/imap/sync_client.c +++ b/imap/sync_client.c @@ -3197,12 +3197,12 @@ static int do_sync(const char *filename) if (r) { /* promote failed personal mailboxes to USER */ struct sync_folder *folder; - char *userid, *p; + char *userid, *p, *useridp; for (folder = folder_list->head; folder && folder->mark; folder = folder->next); - if (folder && - (userid = xstrdup(mboxname_isusermailbox(folder->name, 0)))) { + if (folder && (useridp = mboxname_isusermailbox(folder->name, 0))) { + userid = xstrdup(useridp); if ((p = strchr(userid, '.'))) *p = '\0'; folder->mark = 1; if (--folder_list->count == 0) r = 0; -- 1.5.6.3