From: Timo Sirainen Date: Fri, 25 Jun 2010 14:03:44 +0000 (+0100) Subject: lib-storage: Call settings_check() after duplicating settings struct. Fixes lock_meth... X-Git-Tag: 2.0.rc1~85 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8d47e2427558d5011dfc75694b704760c1ef8ba;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Call settings_check() after duplicating settings struct. Fixes lock_method setting. lock_method was always ignored and the default fcntl was used. --HG-- branch : HEAD --- diff --git a/src/lib-storage/mail-user.c b/src/lib-storage/mail-user.c index 2022772956..a048abdacc 100644 --- a/src/lib-storage/mail-user.c +++ b/src/lib-storage/mail-user.c @@ -36,6 +36,7 @@ struct mail_user *mail_user_alloc(const char *username, const struct mail_user_settings *set) { struct mail_user *user; + const char *error; pool_t pool; i_assert(username != NULL); @@ -49,6 +50,12 @@ struct mail_user *mail_user_alloc(const char *username, user->set_info = set_info; user->unexpanded_set = settings_dup(set_info, set, pool); user->set = settings_dup(set_info, set, pool); + + /* check settings so that the duplicated structure will again + contain the parsed fields */ + if (!settings_check(set_info, pool, user->set, &error)) + i_panic("Settings check unexpectedly failed: %s", error); + user->v.deinit = mail_user_deinit_base; user->v.get_temp_prefix = mail_user_get_temp_prefix_base; p_array_init(&user->module_contexts, user->pool, 5);