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:
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);
}