gnucash unstable: Csv Importer - Prevent crash if number of saved columns is higher than actually detected ones.
Geert Janssens
gjanssens at code.gnucash.org
Thu Mar 8 18:35:02 EST 2018
Updated via https://github.com/Gnucash/gnucash/commit/79dd7d69 (commit)
from https://github.com/Gnucash/gnucash/commit/6ee1c71d (commit)
commit 79dd7d69d0eadf96e2fec132bce1d2a01c8753d3
Author: Geert Janssens <geert at kobaltwit.be>
Date: Fri Mar 9 00:30:43 2018 +0100
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.
diff --git a/gnucash/import-export/csv-imp/gnc-import-tx.cpp b/gnucash/import-export/csv-imp/gnc-import-tx.cpp
index ae9383e..8dd940e 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<PL_INPUT>(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]);
}
Summary of changes:
gnucash/import-export/csv-imp/gnc-import-tx.cpp | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
More information about the gnucash-changes
mailing list