[PATCH] Fix seabear import sample overrun bug

Linus Torvalds torvalds at linux-foundation.org
Mon Apr 11 11:42:25 PDT 2016


From: Linus Torvalds <torvalds at linux-foundation.org>
Date: Mon, 11 Apr 2016 11:36:31 -0700
Subject: [PATCH] Fix seabear import sample overrun bug

The Seabear import fixed up the NDL and TTS in the samples from minutes
(in the import) to seconds (our internal format for all time).  But it
did it with a loop that overran the end of the samples array by one:

	for(int s_nr = 0 ; s_nr <= dive->dc.samples ; s_nr++) {

Fix it to use the proper "<" instead of "<=".

Reported-by: Stuart Vernon <stuartv at force2.net>
Tested-by: Miika Turkia <miika.turkia at gmail.com>
Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
---

NOTE! This is the version that applies to the current development version 
of the tree. I'll send out another patch for the 4.5.5 tree asap.

 desktop-widgets/divelogimportdialog.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/desktop-widgets/divelogimportdialog.cpp b/desktop-widgets/divelogimportdialog.cpp
index cd9026f8786d..757cad59e98a 100644
--- a/desktop-widgets/divelogimportdialog.cpp
+++ b/desktop-widgets/divelogimportdialog.cpp
@@ -782,7 +782,7 @@ void DiveLogImportDialog::on_buttonBox_accepted()
 				}
 				// Seabear CSV stores NDL and TTS in Minutes, not seconds
 				struct dive *dive = dive_table.dives[dive_table.nr - 1];
-				for(int s_nr = 0 ; s_nr <= dive->dc.samples ; s_nr++) {
+				for(int s_nr = 0 ; s_nr < dive->dc.samples ; s_nr++) {
 					struct sample *sample = dive->dc.sample + s_nr;
 					sample->ndl.seconds *= 60;
 					sample->tts.seconds *= 60;
-- 
2.8.0.rc4.16.g56331f8




More information about the subsurface mailing list