gnucash maint: Bug 798047 - Crash on delete account.

John Ralls jralls at code.gnucash.org
Sat Dec 12 19:40:55 EST 2020


Updated	 via  https://github.com/Gnucash/gnucash/commit/7de24dec (commit)
	from  https://github.com/Gnucash/gnucash/commit/cf5db5cf (commit)



commit 7de24dec62627f6ae995720ee38694ae01165066
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Dec 12 16:40:18 2020 -0800

    Bug 798047 - Crash on delete account.
    
    Use after free. Never a good idea.

diff --git a/gnucash/gnome/gnc-plugin-page-account-tree.c b/gnucash/gnome/gnc-plugin-page-account-tree.c
index fb2154dc4..cbb434ddc 100644
--- a/gnucash/gnome/gnc-plugin-page-account-tree.c
+++ b/gnucash/gnome/gnc-plugin-page-account-tree.c
@@ -1668,12 +1668,11 @@ gnc_plugin_page_account_tree_cmd_delete_account (GtkAction *action, GncPluginPag
     if (!(xaccAccountGetSplitList (account) != NULL ||
           gnc_account_n_children (account)))
     {
-        do_delete_account (account, NULL, NULL, NULL);
-
         /* update opening balance account */
         gnc_find_or_create_equity_account (gnc_account_get_root(account),
                                            EQUITY_OPENING_BALANCE,
                                            xaccAccountGetCommodity (account));
+        do_delete_account (account, NULL, NULL, NULL);
         return;
     }
 
@@ -1709,13 +1708,12 @@ gnc_plugin_page_account_tree_cmd_delete_account (GtkAction *action, GncPluginPag
                                 adopt.subacct.new_account,
                                 adopt.delete_res) == GTK_RESPONSE_ACCEPT)
     {
-        do_delete_account (account, adopt.subacct.new_account,
-                           adopt.subtrans.new_account, adopt.trans.new_account);
-
         /* update opening balance account */
         gnc_find_or_create_equity_account (gnc_account_get_root(account),
                                            EQUITY_OPENING_BALANCE,
                                            xaccAccountGetCommodity (account));
+        do_delete_account (account, adopt.subacct.new_account,
+                           adopt.subtrans.new_account, adopt.trans.new_account);
     }
 }
 



Summary of changes:
 gnucash/gnome/gnc-plugin-page-account-tree.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)



More information about the gnucash-changes mailing list