Bug 798047 - Crash on delete account.

Use after free. Never a good idea.
This commit is contained in:
John Ralls 2020-12-12 16:40:18 -08:00
parent cf5db5cff5
commit 7de24dec62

View File

@ -1668,12 +1668,11 @@ gnc_plugin_page_account_tree_cmd_delete_account (GtkAction *action, GncPluginPag
if (!(xaccAccountGetSplitList (account) != NULL || if (!(xaccAccountGetSplitList (account) != NULL ||
gnc_account_n_children (account))) gnc_account_n_children (account)))
{ {
do_delete_account (account, NULL, NULL, NULL);
/* update opening balance account */ /* update opening balance account */
gnc_find_or_create_equity_account (gnc_account_get_root(account), gnc_find_or_create_equity_account (gnc_account_get_root(account),
EQUITY_OPENING_BALANCE, EQUITY_OPENING_BALANCE,
xaccAccountGetCommodity (account)); xaccAccountGetCommodity (account));
do_delete_account (account, NULL, NULL, NULL);
return; return;
} }
@ -1709,13 +1708,12 @@ gnc_plugin_page_account_tree_cmd_delete_account (GtkAction *action, GncPluginPag
adopt.subacct.new_account, adopt.subacct.new_account,
adopt.delete_res) == GTK_RESPONSE_ACCEPT) 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 */ /* update opening balance account */
gnc_find_or_create_equity_account (gnc_account_get_root(account), gnc_find_or_create_equity_account (gnc_account_get_root(account),
EQUITY_OPENING_BALANCE, EQUITY_OPENING_BALANCE,
xaccAccountGetCommodity (account)); xaccAccountGetCommodity (account));
do_delete_account (account, adopt.subacct.new_account,
adopt.subtrans.new_account, adopt.trans.new_account);
} }
} }