dovecot-2.1: lmtp: Fixed assert-crashing on 3rd client connection.
dovecot at dovecot.org
dovecot at dovecot.org
Sat Jan 21 00:43:24 EET 2012
details: http://hg.dovecot.org/dovecot-2.1/rev/e9f68fdf6967
changeset: 13978:e9f68fdf6967
user: Timo Sirainen <tss at iki.fi>
date: Sat Jan 21 00:43:13 2012 +0200
description:
lmtp: Fixed assert-crashing on 3rd client connection.
diffstat:
src/lmtp/client.c | 12 ++++++------
src/lmtp/lmtp-settings.c | 4 ++--
src/lmtp/lmtp-settings.h | 4 ++--
3 files changed, 10 insertions(+), 10 deletions(-)
diffs (58 lines):
diff -r d5ba2d63ed6d -r e9f68fdf6967 src/lmtp/client.c
--- a/src/lmtp/client.c Sat Jan 21 00:27:52 2012 +0200
+++ b/src/lmtp/client.c Sat Jan 21 00:43:13 2012 +0200
@@ -137,8 +137,9 @@
{
struct mail_storage_service_input input;
const struct setting_parser_context *set_parser;
+ struct lmtp_settings *lmtp_set;
+ struct lda_settings *lda_set;
const char *error;
- void **sets;
memset(&input, 0, sizeof(input));
input.module = input.service = "lmtp";
@@ -152,12 +153,11 @@
&set_parser, &error) < 0)
i_fatal("%s", error);
- sets = settings_parser_get_list(set_parser) + 1;
- settings_var_expand(&lmtp_setting_parser_info, sets[2], client->pool,
+ lmtp_settings_dup(set_parser, client->pool, &lmtp_set, &lda_set);
+ settings_var_expand(&lmtp_setting_parser_info, lmtp_set, client->pool,
mail_storage_service_get_var_expand_table(storage_service, &input));
-
- lmtp_settings_dup(set_parser, client->pool,
- &client->lmtp_set, &client->set);
+ client->lmtp_set = lmtp_set;
+ client->set = lda_set;
}
static void client_generate_session_id(struct client *client)
diff -r d5ba2d63ed6d -r e9f68fdf6967 src/lmtp/lmtp-settings.c
--- a/src/lmtp/lmtp-settings.c Sat Jan 21 00:27:52 2012 +0200
+++ b/src/lmtp/lmtp-settings.c Sat Jan 21 00:43:13 2012 +0200
@@ -90,8 +90,8 @@
void lmtp_settings_dup(const struct setting_parser_context *set_parser,
pool_t pool,
- const struct lmtp_settings **lmtp_set_r,
- const struct lda_settings **lda_set_r)
+ struct lmtp_settings **lmtp_set_r,
+ struct lda_settings **lda_set_r)
{
void **sets;
diff -r d5ba2d63ed6d -r e9f68fdf6967 src/lmtp/lmtp-settings.h
--- a/src/lmtp/lmtp-settings.h Sat Jan 21 00:27:52 2012 +0200
+++ b/src/lmtp/lmtp-settings.h Sat Jan 21 00:43:13 2012 +0200
@@ -14,7 +14,7 @@
void lmtp_settings_dup(const struct setting_parser_context *set_parser,
pool_t pool,
- const struct lmtp_settings **lmtp_set_r,
- const struct lda_settings **lda_set_r);
+ struct lmtp_settings **lmtp_set_r,
+ struct lda_settings **lda_set_r);
#endif
More information about the dovecot-cvs
mailing list