talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 45c87cf44dae2b33714bf7af487fb07fbc099bff
parent e63d58c5305a291b7c538041ec843bc2fdc9ce17
Author: wwp <subscript@free.fr>
Date:   Wed, 29 Sep 2021 12:37:00 +0200

Fix resource leak: we were never freeing session's config.

Diffstat:
Msrc/plugins/managesieve/managesieve.c | 5+++++
1 file changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/plugins/managesieve/managesieve.c b/src/plugins/managesieve/managesieve.c @@ -984,6 +984,8 @@ static void sieve_session_destroy(Session *session) sessions = g_slist_remove(sessions, (gconstpointer)session); g_slist_free_full(sieve_session->send_queue, (GDestroyNotify)command_abort); + if (sieve_session->config) + sieve_prefs_account_free_config(sieve_session->config); } static void sieve_connect_finished(Session *session, gboolean success) @@ -1036,6 +1038,7 @@ static SieveSession *sieve_session_new(PrefsAccount *account) SESSION(session)->connect_finished = sieve_connect_finished; session_set_recv_message_notify(SESSION(session), sieve_recv_message, NULL); + session->config = NULL; sieve_session_reset(session); return session; } @@ -1062,6 +1065,8 @@ static void sieve_session_reset(SieveSession *session) #endif session->avail_auth_type = 0; session->auth_type = 0; + if (session->config) + sieve_prefs_account_free_config(session->config); session->config = config; session->host = config->use_host ? config->host : account->recv_server; session->port = config->use_port ? config->port : SIEVE_PORT;