talons

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

commit 99738a91f6c2ca14fb8feeef9be42904556cf97f
parent cf75891c808c2c9052a05776917eae0ef429ce8b
Author: Charles Lehner <cel@celehner.com>
Date:   Thu, 16 Jul 2015 18:55:12 -0400

managesieve: Fix string memory leaks

Diffstat:
Msrc/plugins/managesieve/sieve_manager.c | 34+++++++++++++++++++---------------
1 file changed, 19 insertions(+), 15 deletions(-)

diff --git a/src/plugins/managesieve/sieve_manager.c b/src/plugins/managesieve/sieve_manager.c @@ -171,6 +171,7 @@ static void filter_got_data(SieveSession *session, gchar *contents, SieveEditorPage *editor; if (!contents) { + g_free(cmd_data->filter_name); g_free(cmd_data); return; } else if (contents == (void *)-1) { @@ -222,12 +223,14 @@ static void filter_renamed(SieveSession *session, gboolean success, if (!success) { got_session_error(session, "Unable to rename script", page); - return; - } - - manager_sessions_foreach(cur, session, page) { - filters_list_rename_filter(page, data->name_old, data->name_new); + } else { + manager_sessions_foreach(cur, session, page) { + filters_list_rename_filter(page, data->name_old, + data->name_new); + } } + g_free(data->name_old); + g_free(data->name_new); g_free(data); } @@ -266,12 +269,12 @@ static void filter_activated(SieveSession *session, gboolean success, if (!success) { got_session_error(session, "Unable to set active script", page); - return; - } - - manager_sessions_foreach(cur, session, page) { - filter_set_active(page, cmd_data->filter_name); + } else { + manager_sessions_foreach(cur, session, page) { + filter_set_active(page, cmd_data->filter_name); + } } + g_free(cmd_data->filter_name); g_free(cmd_data); } @@ -297,12 +300,13 @@ static void filter_deleted(SieveSession *session, const gchar *err_msg, if (err_msg) { got_session_error(session, err_msg, page); - return; - } - - manager_sessions_foreach(cur, session, page) { - filters_list_delete_filter(page, cmd_data->filter_name); + } else { + manager_sessions_foreach(cur, session, page) { + filters_list_delete_filter(page, + cmd_data->filter_name); + } } + g_free(cmd_data->filter_name); g_free(cmd_data); }