Mercurial > dovecot > core-2.2
changeset 13134:4285147ed694
lib-storage: Changed userdb +key=value to key+=value
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 28 Jun 2011 02:49:46 +0300 |
parents | 748b0fd169d1 |
children | aa9b50f6a92b |
files | src/lib-storage/mail-storage-service.c |
diffstat | 1 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/mail-storage-service.c Tue Jun 28 02:41:06 2011 +0300 +++ b/src/lib-storage/mail-storage-service.c Tue Jun 28 02:49:46 2011 +0300 @@ -108,6 +108,7 @@ struct setting_parser_context *set_parser = user->set_parser; bool mail_debug; const char *key, *orig_key, *append_value = NULL; + unsigned int len; int ret; mail_debug = mail_user_set_get_mail_debug(user->user_info, @@ -116,9 +117,11 @@ line = t_strconcat(line, "=yes", NULL); orig_key = key = t_strcut(line, '='); - if (*key == '+') { - append_value = line + strlen(key) + 1; - key++; + len = strlen(key); + if (len > 0 && key[len-1] == '+') { + /* key+=value */ + append_value = line + len + 1; + key = t_strndup(key, len-1); line++; }