subsurface/core
Linus Torvalds 958dce3326 Keep parsing dives even if one dive parse failed
Eric Charbonnier reported a problem downloading the dives from his
OSTC2, and Jef debugged the libdivecomputer log and says:

 "Your ostc has 75 dives, but subsurface downloaded only one, and then
  stopped the download. That's because that first dive appears to be
  corrupt and fails to parse:

    ERROR: Buffer overflow detected! [in /win/subsurface/libdivecomputer/src/hw_ostc_parser.c:981 (hw_ostc_parser_samples_foreach)]

  Subsurface (incorrectly) considers that a fatal error and stops the
  entire download. From a user point of view, it would be much better to
  ignore the problematic dive, and continue downloading the remaining"

Subsurface used to just stop downloading if there were parsing errors,
but Jef further says:

 "How parser errors are handled is up to the application. Aborting the
  download is probably the worst option here. If a dive fails to parse
  (because the dive data is corrupt, the parser contains a bug, etc),
  that does not necessary mean the remaining dives can't be downloaded"

so let's change the logic to just continue downloading, and hope other
dives work better.

We might want to do better error reporting, right now the errors tend to
just cause "dev_info()" reports, which just set the progress bar text.
So you'll see it in the progress bar as it happens, but it won't get
really ever noted as an error, and it's easy to miss.

But that error reporting is a separate issue, and this just does the
"continue to the next dive" part.

Reported-by: Eric Charbonnier <eric.charbonnier69@gmail.com>
Suggested-by: Jef Driesen <jef@libdivecomputer.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-09-11 21:51:39 +01:00
..
settings Cleanup: move deco function declarations to deco.h 2019-07-18 05:42:55 -07:00
subsurface-qt Use and handle <br/> in DiveObjectHelper 2019-09-11 17:21:50 +01:00
android.cpp Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
applicationstate.cpp Turn application state into enum 2019-05-12 12:33:55 -07:00
applicationstate.h Turn application state into enum 2019-05-12 12:33:55 -07:00
btdiscovery.cpp Update libdivecomputer to support the Aqualung i200c 2019-08-24 15:02:50 -07:00
btdiscovery.h Mobile: only show dive computers in the Bluetooth connection list 2019-02-14 09:05:58 -08:00
checkcloudconnection.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
checkcloudconnection.h get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
cloudstorage.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
cloudstorage.h get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
CMakeLists.txt Cleanup: move gas-functions to own translation unit 2019-06-19 13:11:10 -07:00
cochran.c Core: pass dive, cylinder-id to fill_default_cylinder 2019-08-08 16:26:31 -07:00
cochran.h Cochran import: better support for older models 2017-05-31 21:53:00 -07:00
color.cpp Cleanup: silence clang missing braces warning in core/color.cpp 2018-09-01 11:31:18 -07:00
color.h Indicate negative cylider pressure 2019-08-08 08:56:44 -07:00
compressibility.r Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
configuredivecomputer.cpp Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
configuredivecomputer.h Fix broken windows build with latest MXE 2019-08-29 12:55:25 -07:00
configuredivecomputerthreads.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
configuredivecomputerthreads.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
connectionlistmodel.cpp Mobile: reinstate roleNames function in ConnectionListModel 2019-04-16 23:43:14 +12:00
connectionlistmodel.h Mobile: reinstate roleNames function in ConnectionListModel 2019-04-16 23:43:14 +12:00
datatrak.c Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
datatrak.h Cleanup: const-ify functions taking dives and divecomputers 2018-08-23 14:41:01 -07:00
deco.c Parser: remove global state 2019-08-08 16:26:31 -07:00
deco.h Parser: remove global state 2019-08-08 16:26:31 -07:00
device.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
device.h Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
devicedetails.cpp Implement OSTC4 specific settings 2017-05-04 10:50:15 -07:00
devicedetails.h Implement OSTC4 specific settings 2017-05-04 10:50:15 -07:00
display.h Cleanup: remove unused get_screen_dpi() function 2019-07-06 04:10:14 -07:00
dive.c Fix broken windows build with latest MXE 2019-08-29 12:55:25 -07:00
dive.h Core: pass dive, cylinder-id to fill_default_cylinder 2019-08-08 16:26:31 -07:00
divecomputer.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
divecomputer.h Dive computers: turn QMultiMap into sorted vector 2018-06-17 06:53:13 +09:00
divelist.c Fix new CNS calculation - remove error with factor of 10 2019-08-28 22:28:30 +02:00
divelist.h Cleanup: move planner/deco related declarations planner/deco.h 2019-08-08 16:26:31 -07:00
divelogexportlogic.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
divelogexportlogic.h avoid duplicate and inconsistent applying of QDir::separator() 2019-03-27 07:36:33 -07:00
divemode.h Cleanup: move planner/deco related declarations planner/deco.h 2019-08-08 16:26:31 -07:00
divesite-helper.cpp Dive site: use own copy of taxonomy in dive-site-edit widget 2018-10-13 21:41:41 -04:00
divesite.c Cleanup: generate clear_*_table() functions by macro 2019-06-19 13:11:10 -07:00
divesite.h Undo: make dive site merging undoable 2019-04-12 18:19:07 +03:00
divesitehelpers.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
divesitehelpers.h Geo lookup: don't pass arguments / result via global object 2018-10-11 16:25:02 -07:00
downloadfromdcthread.cpp Cleanup: remove includes from qthelper.h 2019-07-18 05:42:55 -07:00
downloadfromdcthread.h Dive sites: prepare for dive site ref-counting 2019-04-12 18:19:07 +03:00
equipment.c Cleanup: remove unused weightsystem_none() function 2019-07-18 06:01:07 -07:00
equipment.h Cleanup: remove unused weightsystem_none() function 2019-07-18 06:01:07 -07:00
errorhelper.c Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
errorhelper.h Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
exif.cpp Coding-style: remove superfluous parentheses 2018-02-17 19:38:52 -08:00
exif.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
file.c Fix potential crash when saved_git_id is NULL 2019-08-10 20:59:53 +02:00
file.h Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
format.cpp Cleanup: Slightly shorten code in vqasprintf_loc() 2018-04-09 11:29:43 -07:00
format.h Cleanup: Move *_loc formatting functions into new format.cpp file 2018-04-09 11:29:43 -07:00
gas-model.c Cleanup: replace macro by inline function in gas-model.c 2019-08-08 15:22:09 -07:00
gas.c Cleanup: move gas-functions to own translation unit 2019-06-19 13:11:10 -07:00
gas.h Cleanup: move gas-functions to own translation unit 2019-06-19 13:11:10 -07:00
gaspressures.c Cleanup: introduce function to set pressure values 2019-07-18 05:50:22 -07:00
gaspressures.h Cleanup: Make gaspressures.h a regular include file 2019-06-19 13:11:10 -07:00
gettext.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
gettextfromc.cpp Localization: make cache thread safe and robust against use-after-free 2018-06-24 20:31:14 +02:00
gettextfromc.h Localization: remove gettextFromC::instance() 2018-06-24 20:31:14 +02:00
git-access.c Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
git-access.h prefs: git_local_only is not a preference 2018-09-10 16:26:49 -07:00
gpslocation.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
gpslocation.h Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
imagedownloader.cpp Core: remove variable name conflict 2019-03-18 19:40:32 -07:00
imagedownloader.h Profile: add "synchronous" mode for picture plotting 2019-02-07 16:06:43 +01:00
import-cobalt.c Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03:00
import-csv.c Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
import-csv.h Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
import-divinglog.c Core: dynamically resize weight table 2019-07-18 06:01:07 -07:00
import-shearwater.c Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
import-suunto.c Cleanup: move tag functions into own translation unit 2019-06-19 13:11:10 -07:00
ios.cpp Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
libdivecomputer.c Keep parsing dives even if one dive parse failed 2019-09-11 21:51:39 +01:00
libdivecomputer.h Core: unconditionally include stdio.h in libdivecomputer.h 2019-08-10 09:16:01 -07:00
liquivision.c Core: pass dive, cylinder-id to fill_default_cylinder 2019-08-08 16:26:31 -07:00
load-git.c Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
macos.c Add missing header files to macos.c 2019-08-11 08:20:38 +02:00
membuffer.c Cleanup: unconstify string argument to add_to_string() 2019-03-27 13:58:15 +01:00
membuffer.h Cleanup: fix includes in membuffer.h 2019-06-19 13:11:10 -07:00
metadata.cpp Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
metadata.h Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
metrics.cpp Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
metrics.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
ostctools.c Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
parse-xml.c Fix broken windows build with latest MXE 2019-08-29 12:55:25 -07:00
parse.c Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
parse.h Core: dynamically resize weight table 2019-07-18 06:01:07 -07:00
planner.c Show correct notes entry when switching on stops 2019-09-11 14:55:33 +01:00
planner.h Cleanup: remove global disclaimer variable 2019-09-10 21:31:21 +02:00
plannernotes.c Cleanup and correct plannernotes html 2019-09-11 17:21:50 +01:00
pref.h Add UI element for final surface segment in planner 2019-03-29 06:51:12 -07:00
profile.c Profile: properly initialize plot_info structures 2019-08-28 07:10:09 -07:00
profile.h Profile: properly initialize plot_info structures 2019-08-28 07:10:09 -07:00
qt-ble.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
qt-ble.h get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
qt-gui.h core,tests: change qml register function 2018-09-11 17:22:58 -07:00
qt-init.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
qthelper.cpp Cleanup: move planner/deco related declarations planner/deco.h 2019-08-08 16:26:31 -07:00
qthelper.h Cleanup: remove includes from qthelper.h 2019-07-18 05:42:55 -07:00
qtserialbluetooth.cpp drop support for Qt 5.4 and before 2019-03-27 07:36:33 -07:00
save-git.c Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
save-html.c Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
save-html.h Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
save-profiledata.c Profile: properly initialize plot_info structures 2019-08-28 07:10:09 -07:00
save-profiledata.h Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
save-xml.c Fix the dive site XML saving 2019-08-19 12:28:20 -07:00
serial_ftdi.c Fix Cressi interface ftdi opening bug 2018-11-18 20:01:28 +02:00
sha1.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
sha1.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
ssrf.h mobile: add timer to measure startup. 2018-05-30 21:47:07 -07:00
statistics.c Cleanup: move trip-related functions into own translation unit 2019-06-19 13:11:10 -07:00
statistics.h Add backend support for statistics by depth and temperature 2019-03-12 00:53:51 +01:00
strndup.h Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
strtod.c Core: introduce new subsurface-string header 2018-05-14 10:13:39 -07:00
structured_list.h Cleanup: fix comment to STRUCTURED_LIST_FREE 2019-06-19 13:11:10 -07:00
subsurface-string.h Core: don't inline rarely used function 2018-05-14 10:13:39 -07:00
subsurfacestartup.c Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
subsurfacestartup.h Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
subsurfacesysinfo.cpp drop support for Qt 5.4 and before 2019-03-27 07:36:33 -07:00
subsurfacesysinfo.h drop support for Qt 5.4 and before 2019-03-27 07:36:33 -07:00
table.h Core: dynamically resize weight table 2019-07-18 06:01:07 -07:00
tag.c Cleanup: move tag functions into own translation unit 2019-06-19 13:11:10 -07:00
tag.h Cleanup: move tag functions into own translation unit 2019-06-19 13:11:10 -07:00
taxonomy.c Dive site: use own copy of taxonomy in dive-site-edit widget 2018-10-13 21:41:41 -04:00
taxonomy.h Dive site: use own copy of taxonomy in dive-site-edit widget 2018-10-13 21:41:41 -04:00
time.c Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
trip.c Import: use TRIP_THRESHOLD when checking for trip-overlap 2019-06-28 20:13:49 +09:00
trip.h Import: use TRIP_THRESHOLD when checking for trip-overlap 2019-06-28 20:13:49 +09:00
uemis-downloader.c Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
uemis.c Dive sites: prepare for dive site ref-counting 2019-04-12 18:19:07 +03:00
uemis.h Dive site: use pointer instead of uuid in uemis_helper 2018-10-29 00:09:31 +00:00
units.c Fix broken windows build with latest MXE 2019-08-29 12:55:25 -07:00
units.h Fix broken windows build with latest MXE 2019-08-29 12:55:25 -07:00
unix.c Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
version.c Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
version.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
videoframeextractor.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
videoframeextractor.h Dive media: Extract thumbnails from videos with ffmpeg 2018-07-28 15:31:25 -07:00
webservice.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
windows.c Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
windowtitleupdate.cpp Cleanup: Make WindowsTitleUpdate a global object 2018-07-30 13:55:23 -07:00
windowtitleupdate.h Cleanup: Make WindowsTitleUpdate a global object 2018-07-30 13:55:23 -07:00
worldmap-options.h Add SPDX header to core C files 2017-04-29 13:32:55 -07:00
worldmap-save.c Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
worldmap-save.h Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
xmp_parser.cpp Desktop: fix yet another variable name conflict 2019-03-18 19:40:32 -07:00
xmp_parser.h Metadata: rudimentary support for XMP metadataa in MP4-based videos 2018-09-25 14:59:14 -07:00