From 9af57a8c0c6d4908bc422596bc57cbf74ee6bf2f Mon Sep 17 00:00:00 2001 From: Andrej Kacian Date: Thu, 3 May 2018 13:05:46 +0200 Subject: [PATCH] Fix memory handling around SieveEditorPage. --- src/plugins/managesieve/sieve_editor.c | 1 + src/plugins/managesieve/sieve_manager.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/managesieve/sieve_editor.c b/src/plugins/managesieve/sieve_editor.c index d32265240..f7793ad89 100644 --- a/src/plugins/managesieve/sieve_editor.c +++ b/src/plugins/managesieve/sieve_editor.c @@ -415,6 +415,7 @@ static void sieve_editor_destroy(SieveEditorPage *page) { gtk_widget_destroy(page->window); undo_destroy(page->undostruct); + g_free(page->script_name); g_free(page); } diff --git a/src/plugins/managesieve/sieve_manager.c b/src/plugins/managesieve/sieve_manager.c index 8a9af4ced..0f7ec0e1a 100644 --- a/src/plugins/managesieve/sieve_manager.c +++ b/src/plugins/managesieve/sieve_manager.c @@ -198,13 +198,14 @@ static void filter_edit(GtkWidget *widget, SieveManagerPage *page) editor = sieve_editor_get(session, filter_name); if (editor) { sieve_editor_present(editor); + g_free(filter_name); } else { editor = sieve_editor_new(session, filter_name); + /* filter_name becomes ownership of newly created + * SieveEditorPage, so we do not need to free it here. */ sieve_editor_load(editor, (sieve_session_cb_fn)filter_got_load_error, page); } - - g_free(filter_name); } static void filter_renamed(SieveSession *session, gboolean abort, -- 2.25.1