From d501445bea38f1fa81c57160cef675afd9fd38dc Mon Sep 17 00:00:00 2001 From: Miika Turkia Date: Fri, 23 Jan 2015 20:06:31 +0200 Subject: [PATCH] Fix segm fault on known CSV imports If the header line is not set up properly, the known imports assignments will index out of the array. Signed-off-by: Miika Turkia Signed-off-by: Dirk Hohndel --- qt-ui/divelogimportdialog.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/qt-ui/divelogimportdialog.cpp b/qt-ui/divelogimportdialog.cpp index a2b2cc3a2..64bb76418 100644 --- a/qt-ui/divelogimportdialog.cpp +++ b/qt-ui/divelogimportdialog.cpp @@ -435,23 +435,23 @@ void DiveLogImportDialog::loadFileContents(int value, whatChanged triggeredBy) // now set up time, depth, temperature, po2, cns, ndl, tts, stopdepth, pressure for (int i = 0; i < currColumns.count(); i++) headers.append(""); - if (CSVApps[value].time != -1) + if (CSVApps[value].time != -1 && CSVApps[value].time < currColumns.count()) headers.replace(CSVApps[value].time, tr("Sample time")); - if (CSVApps[value].depth != -1) + if (CSVApps[value].depth != -1 && CSVApps[value].depth < currColumns.count()) headers.replace(CSVApps[value].depth, tr("Sample depth")); - if (CSVApps[value].temperature != -1) + if (CSVApps[value].temperature != -1 && CSVApps[value].temperature < currColumns.count()) headers.replace(CSVApps[value].temperature, tr("Sample temperature")); - if (CSVApps[value].po2 != -1) + if (CSVApps[value].po2 != -1 && CSVApps[value].po2 < currColumns.count()) headers.replace(CSVApps[value].po2, tr("Sample po2")); - if (CSVApps[value].cns != -1) + if (CSVApps[value].cns != -1 && CSVApps[value].cns < currColumns.count()) headers.replace(CSVApps[value].cns, tr("Sample cns")); - if (CSVApps[value].ndl != -1) + if (CSVApps[value].ndl != -1 && CSVApps[value].ndl < currColumns.count()) headers.replace(CSVApps[value].ndl, tr("Sample ndl")); - if (CSVApps[value].tts != -1) + if (CSVApps[value].tts != -1 && CSVApps[value].tts < currColumns.count()) headers.replace(CSVApps[value].tts, tr("Sample tts")); - if (CSVApps[value].stopdepth != -1) + if (CSVApps[value].stopdepth != -1 && CSVApps[value].stopdepth < currColumns.count()) headers.replace(CSVApps[value].stopdepth, tr("Sample stopdepth")); - if (CSVApps[value].pressure != -1) + if (CSVApps[value].pressure != -1 && CSVApps[value].pressure < currColumns.count()) headers.replace(CSVApps[value].pressure, tr("Samples pressure")); }