gnucash stable: Bug 799444 - Silent crash on CSV import

John Ralls jralls at code.gnucash.org
Thu Dec 12 17:01:57 EST 2024


Updated	 via  https://github.com/Gnucash/gnucash/commit/81e11f70 (commit)
	from  https://github.com/Gnucash/gnucash/commit/4e8058c1 (commit)



commit 81e11f70c359f7b5be1862dac1516edb6a3f1a67
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu Dec 12 13:53:31 2024 -0800

    Bug 799444 - Silent crash on CSV import
    
    Don't try to add a transaction with no splits to the imported
    transaction list, gnc_gen_trans_list_add_trans_internal asserts.

diff --git a/gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp b/gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp
index a096d1c3f3..c62ed927ae 100644
--- a/gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp
+++ b/gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp
@@ -2188,7 +2188,12 @@ CsvImpTransAssist::assist_match_page_prepare ()
                 draft_trans->m_trec_date ? static_cast<time64>(GncDateTime(*draft_trans->m_trec_date, DayPart::neutral)) : 0,
             };
 
-            gnc_gen_trans_list_add_trans_with_split_data (gnc_csv_importer_gui, std::move (draft_trans->trans), &lsplit);
+//A tramsaction with no splits is invalid and will crash later.
+            if (xaccTransGetSplit(draft_trans->trans, 0))
+                gnc_gen_trans_list_add_trans_with_split_data (gnc_csv_importer_gui, std::move (draft_trans->trans),
+                                                              &lsplit);
+            else
+                xaccTransDestroy(draft_trans->trans);
             draft_trans->trans = nullptr;
         }
     }



Summary of changes:
 gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)



More information about the gnucash-changes mailing list