Mercurial > dovecot > core-2.2
changeset 15532:7bca3be44b8f
lib-storage: Handle better when attempting to access shared mailboxes for nonexistent users.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 27 Nov 2012 10:49:41 +0200 |
parents | fe1be6725304 |
children | 6a97faf3e500 |
files | src/lib-storage/index/shared/shared-storage.c |
diffstat | 1 files changed, 10 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/shared/shared-storage.c Tue Nov 27 10:49:18 2012 +0200 +++ b/src/lib-storage/index/shared/shared-storage.c Tue Nov 27 10:49:41 2012 +0200 @@ -257,15 +257,17 @@ user->unexpanded_set); owner->autocreated = TRUE; if (mail_user_init(owner, &error) < 0) { - mailbox_list_set_critical(list, - "Couldn't create namespace '%s' for user %s: %s", - ns->prefix, userdomain, error); - mail_user_unref(&owner); - return -1; - } - if (!var_has_key(storage->location, 'h', "home")) + if (!owner->nonexistent) { + mailbox_list_set_critical(list, + "Couldn't create namespace '%s' for user %s: %s", + ns->prefix, userdomain, error); + mail_user_unref(&owner); + return -1; + } + ret = 0; + } else if (!var_has_key(storage->location, 'h', "home")) { ret = 1; - else { + } else { /* we'll need to look up the user's home directory */ if ((ret = mail_user_get_home(owner, &tab[3].value)) < 0) { mailbox_list_set_critical(list, "Namespace '%s': "