From 7de24dec62627f6ae995720ee38694ae01165066 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Sat, 12 Dec 2020 16:40:18 -0800 Subject: [PATCH] Bug 798047 - Crash on delete account. Use after free. Never a good idea. --- gnucash/gnome/gnc-plugin-page-account-tree.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnucash/gnome/gnc-plugin-page-account-tree.c b/gnucash/gnome/gnc-plugin-page-account-tree.c index fb2154dc4d..cbb434ddc6 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); } }