gnucash stable: Bug 799649 - Ensure that GnuCash does not crash when it converts a...

John Ralls jralls at code.gnucash.org
Fri Jul 25 15:57:33 EDT 2025


Updated	 via  https://github.com/Gnucash/gnucash/commit/a7732489 (commit)
	from  https://github.com/Gnucash/gnucash/commit/d0e7b83d (commit)



commit a773248939641e85108d3cdfd4eaf1a9a1005258
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Jul 25 12:53:48 2025 -0700

    Bug 799649 - Ensure that GnuCash does not crash when it converts a...
    
    foreign-currency transaction into a trading account transaction.
    
    Disable scrubbing while committing the new trading split, otherwise
    the recursed scrub will delete it causing a crash when GnuCash tries
    to populate it.

diff --git a/libgnucash/engine/Scrub.cpp b/libgnucash/engine/Scrub.cpp
index 7f24cbccaa..34f9221a90 100644
--- a/libgnucash/engine/Scrub.cpp
+++ b/libgnucash/engine/Scrub.cpp
@@ -566,11 +566,13 @@ get_trading_split (Transaction *trans, Account *base,
     if (!balance_split)
     {
         balance_split = xaccMallocSplit (qof_instance_get_book(trans));
+        xaccDisableDataScrubbing();
 
         xaccTransBeginEdit (trans);
         xaccSplitSetParent(balance_split, trans);
         xaccSplitSetAccount(balance_split, account);
         xaccTransCommitEdit (trans);
+        xaccEnableDataScrubbing();
     }
 
     return balance_split;



Summary of changes:
 libgnucash/engine/Scrub.cpp | 2 ++
 1 file changed, 2 insertions(+)



More information about the gnucash-changes mailing list