From 0f026f6a100e336b1f6a41ab1556d3d79f232e64 Mon Sep 17 00:00:00 2001 From: Robert Fewell <14uBobIT@gmail.com> Date: Thu, 8 Jul 2021 09:33:10 +0100 Subject: [PATCH] Bug 798221 - Transfer funds between accounts with different currencies crashes Gnucash on macOS In the scrub function find_account_matching_name_in_list there was a test for account names being the same for currency but condition was backwards so was matching on account names being different. There was also a g_list_free resulting in a double free which was removed. --- libgnucash/engine/Scrub.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libgnucash/engine/Scrub.c b/libgnucash/engine/Scrub.c index 88965cefb0..888378cdee 100644 --- a/libgnucash/engine/Scrub.c +++ b/libgnucash/engine/Scrub.c @@ -1434,11 +1434,8 @@ find_account_matching_name_in_list (GList *acc_list, const char* accname) { Account *acc = GNC_ACCOUNT (node->data); if (G_UNLIKELY (!acc)) continue; - if (g_strcmp0 (accname, xaccAccountGetName(acc))) - { - g_list_free (acc_list); + if (g_strcmp0 (accname, xaccAccountGetName (acc)) == 0) return acc; - } } return NULL; }