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 <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Miika Turkia 2015-01-23 20:06:31 +02:00 committed by Dirk Hohndel
parent 9c4a4cb9f8
commit d501445bea

View file

@ -435,23 +435,23 @@ void DiveLogImportDialog::loadFileContents(int value, whatChanged triggeredBy)
// now set up time, depth, temperature, po2, cns, ndl, tts, stopdepth, pressure // now set up time, depth, temperature, po2, cns, ndl, tts, stopdepth, pressure
for (int i = 0; i < currColumns.count(); i++) for (int i = 0; i < currColumns.count(); i++)
headers.append(""); 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")); 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")); 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")); 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")); 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")); 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")); 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")); 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")); 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")); headers.replace(CSVApps[value].pressure, tr("Samples pressure"));
} }