From: Aki Tuomi Date: Tue, 5 Dec 2023 13:24:18 +0000 (+0200) Subject: config: Fix memory leak on config reload X-Git-Tag: 2.4.0~1865 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ff5250aa9e839ff53f87b27f9cdff192bb6b59bd;p=thirdparty%2Fdovecot%2Fcore.git config: Fix memory leak on config reload --- diff --git a/src/config/config-connection.c b/src/config/config-connection.c index e2e853a5e6..9ffca4df5c 100644 --- a/src/config/config-connection.c +++ b/src/config/config-connection.c @@ -60,6 +60,7 @@ static int config_global_reload(const char **error_r) &new_config, error_r) <= 0) return -1; + config_parsed_free(&global_config); global_config = new_config; i_close_fd(&global_config_fd); @@ -170,9 +171,11 @@ void config_connection_destroy(struct config_connection *conn) master_service_client_connection_destroyed(master_service); } -void config_connections_init(struct config_parsed *config) +void config_connections_init(struct config_parsed *config ATTR_UNUSED) { - global_config = config; + const char *error; + if (config_global_reload(&error) < 0) + i_fatal("%s", error); } void config_connections_destroy_all(void) @@ -180,4 +183,5 @@ void config_connections_destroy_all(void) while (config_connections != NULL) config_connection_destroy(config_connections); i_close_fd(&global_config_fd); + config_parsed_free(&global_config); }