Signed-off-by: Miika Turkia <miika.tur...@gmail.com>
---
 file.c                        | 7 +++++++
 qt-ui/divelogimportdialog.cpp | 5 +++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/file.c b/file.c
index eacd875..e03edaf 100644
--- a/file.c
+++ b/file.c
@@ -932,6 +932,13 @@ int parse_seabear_csv_file(const char *filename, int 
timef, int depthf, int temp
                NL = "\r\n";
        }
 
+       /*
+        * If file does not contain empty lines, it is not a valid
+        * Seabear CSV file.
+        */
+       if (!ptr)
+               return -1;
+
        if (!ptr_old) {
                while ((ptr = strstr(ptr, "\n\n")) != NULL) {
                        ptr_old = ptr;
diff --git a/qt-ui/divelogimportdialog.cpp b/qt-ui/divelogimportdialog.cpp
index c79b9df..ca3a2be 100644
--- a/qt-ui/divelogimportdialog.cpp
+++ b/qt-ui/divelogimportdialog.cpp
@@ -526,7 +526,7 @@ void DiveLogImportDialog::on_buttonBox_accepted()
        if (ui->knownImports->currentText() != "Manual import") {
                for (int i = 0; i < fileNames.size(); ++i) {
                        if (ui->knownImports->currentText() == "Seabear CSV") {
-                               
parse_seabear_csv_file(fileNames[i].toUtf8().data(),
+                               if 
(parse_seabear_csv_file(fileNames[i].toUtf8().data(),
                                                       r.indexOf(tr("Sample 
time")),
                                                       r.indexOf(tr("Sample 
depth")),
                                                       r.indexOf(tr("Sample 
temperature")),
@@ -539,7 +539,8 @@ void DiveLogImportDialog::on_buttonBox_accepted()
                                                       
ui->CSVSeparator->currentIndex(),
                                                       
specialCSV.contains(ui->knownImports->currentIndex()) ? 
CSVApps[ui->knownImports->currentIndex()].name.toUtf8().data() : "csv",
                                                       
ui->CSVUnits->currentIndex()
-                                                      );
+                                                      ) < 0)
+                                       return;
 
                                // Seabear CSV stores NDL and TTS in Minutes, 
not seconds
                                struct dive *dive = 
dive_table.dives[dive_table.nr - 1];
-- 
1.9.1

_______________________________________________
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to