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 88965cefb02..888378cdeed 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;
}