Fix memory handling around SieveEditorPage.
authorAndrej Kacian <ticho@claws-mail.org>
Thu, 3 May 2018 11:05:46 +0000 (13:05 +0200)
committerAndrej Kacian <ticho@claws-mail.org>
Thu, 3 May 2018 11:05:46 +0000 (13:05 +0200)
src/plugins/managesieve/sieve_editor.c
src/plugins/managesieve/sieve_manager.c

index d32265240d67e8bfe1c47216f2438a79ba10634a..f7793ad89caf8b7ce1dce0628db208ef27938acc 100644 (file)
@@ -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);
 }
 
index 8a9af4ced484574de5560ef087b6f186b05143dc..0f7ec0e1a1cf7040db143fd306deb98ba2e6687d 100644 (file)
@@ -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,