From 79dd7d69d0eadf96e2fec132bce1d2a01c8753d3 Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Fri, 9 Mar 2018 00:30:43 +0100 Subject: [PATCH] Csv Importer - Prevent crash if number of saved columns is higher than actually detected ones. I ran into this while trying to load a utf-16 encoded file and loading a saved preset using utf-8. By applying the preset the columns in the utf-16 file were no longer detected, but the importer was still trying to read from a preset account column. --- gnucash/import-export/csv-imp/gnc-import-tx.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnucash/import-export/csv-imp/gnc-import-tx.cpp b/gnucash/import-export/csv-imp/gnc-import-tx.cpp index ae9383e6b2..8dd940ea26 100644 --- a/gnucash/import-export/csv-imp/gnc-import-tx.cpp +++ b/gnucash/import-export/csv-imp/gnc-import-tx.cpp @@ -907,9 +907,13 @@ GncTxImport::accounts () continue; auto col_strs = std::get(parsed_line); - if ((acct_col_it != m_settings.m_column_types.end()) && !col_strs[acct_col].empty()) + if ((acct_col_it != m_settings.m_column_types.end()) && + (acct_col < col_strs.size()) && + !col_strs[acct_col].empty()) accts.insert(col_strs[acct_col]); - if ((tacct_col_it != m_settings.m_column_types.end()) && !col_strs[tacct_col].empty()) + if ((tacct_col_it != m_settings.m_column_types.end()) && + (tacct_col < col_strs.size()) && + !col_strs[tacct_col].empty()) accts.insert(col_strs[tacct_col]); }