subsurface/core
Linus Torvalds c685c05ff4 Fix cylinder gas type saving when we have bogus gas use data
Steve Williams reported a crash when saving a previously loaded dive as
xml, and gave a gdb backtrace.

It turns out that if we can't parse the cylinder use type (OC, diluent,
oxygen, unused) we initialize the cylinder use to an invalid type, and
then when we save it, we mess up.

Fix it up by doing proper limit checking before accessing the
"cylinderuse_text[]" array when saving.

Reported-by: Steve <stevewilliams@internode.on.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-07-14 22:17:13 +02:00
..
settings use the default constructor for empty QString and QByteArray constants 2019-04-12 12:59:17 +03:00
subsurface-qt Cleanup: unify selection signals 2019-06-23 20:08:46 +02:00
android.cpp Make device enumeration use the device transport data 2018-08-27 22:10:38 -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 Add BLE detection for the new Oceanic Geo 4.0 2019-06-01 05:25:23 +03:00
btdiscovery.h Mobile: only show dive computers in the Bluetooth connection list 2019-02-14 09:05:58 -08:00
checkcloudconnection.cpp get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
checkcloudconnection.h get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
cloudstorage.cpp get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03: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 Cleanup: remove "sha1.h" include in "dive.h" 2019-04-12 18:19:07 +03: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 Cleanups to core/color.[c|hpp] 2018-07-18 02:09:15 +03:00
compressibility.r
configuredivecomputer.cpp ConfigureDiveComputer::saveXMLBackup(): factor out writing gas details 2019-03-27 07:36:33 -07:00
configuredivecomputer.h Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
configuredivecomputerthreads.cpp Misc: replace some FIXME comments 2019-03-19 09:56:48 -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 tag functions into own translation unit 2019-06-19 13:11:10 -07:00
datatrak.h Cleanup: const-ify functions taking dives and divecomputers 2018-08-23 14:41:01 -07:00
deco.c Cleanup: make local variables and functions in deco.c static 2019-06-19 13:11:10 -07:00
deco.h Cleanup: make local variables and functions in deco.c static 2019-06-19 13:11:10 -07:00
device.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
device.h Core: remove dive.h from files that don't need it 2018-05-14 10:13:39 -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 cylinder gas type saving when we have bogus gas use data 2019-07-14 22:17:13 +02:00
dive.h Fix cylinder gas type saving when we have bogus gas use data 2019-07-14 22:17:13 +02:00
divecomputer.cpp core: remove SettingsObjectWrapper and update qPref calls 2018-08-15 16:11:39 -07:00
divecomputer.h Dive computers: turn QMultiMap into sorted vector 2018-06-17 06:53:13 +09:00
divelist.c Import: use TRIP_THRESHOLD when checking for trip-overlap 2019-06-28 20:13:49 +09:00
divelist.h Cleanup: use add_to_dive_table() in record_dive_to_table() 2019-06-19 13:11:10 -07:00
divelogexportlogic.cpp avoid duplicate and inconsistent applying of QDir::separator() 2019-03-27 07:36:33 -07:00
divelogexportlogic.h avoid duplicate and inconsistent applying of QDir::separator() 2019-03-27 07:36:33 -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 Undo: use QUndoStack::isClean() to determine unsaved changes 2019-04-12 18:19:07 +03:00
divesitehelpers.h Geo lookup: don't pass arguments / result via global object 2018-10-11 16:25:02 -07:00
downloadfromdcthread.cpp Cleanup: generate clear_*_table() functions by macro 2019-06-19 13:11:10 -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 parameter used from find_best_gasmix_match() 2019-06-19 13:11:10 -07:00
equipment.h Cleanup: remove unused macros WEIGHT_IDX_PRIMARY and _SECONDARY 2019-06-19 13:11:10 -07:00
errorhelper.c Coding style: remove Java-style function definition 2019-04-12 18:19:07 +03: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 Cleanup: move parse-function declarations out of "dive.h" 2019-04-12 18:19:07 +03:00
file.h Cleanup: move parse-function declarations out of "dive.h" 2019-04-12 18:19:07 +03: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: remove bogus inline modifier 2019-06-19 13:11:10 -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: Make gaspressures.h a regular include file 2019-06-19 13:11:10 -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: remove "sha1.h" include in "dive.h" 2019-04-12 18:19:07 +03:00
git-access.h prefs: git_local_only is not a preference 2018-09-10 16:26:49 -07:00
gpslocation.cpp Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03: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 Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
import-csv.h Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
import-divinglog.c Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03: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 Make device enumeration use the device transport data 2018-08-27 22:10:38 -07:00
libdivecomputer.c Cleanup: move parse_location() declaration into header file 2019-05-11 12:35:11 -07:00
libdivecomputer.h Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
liquivision.c Dive site: add dive site ref-counting 2019-04-12 18:19:07 +03:00
load-git.c Git: handle excess of cylinders or weightsystems gracefully 2019-07-10 05:11:47 +03:00
macos.c macOS: always list 'FTDI' as a serial connection 2018-09-24 18:51:21 +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 Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
parse-xml.c Cleanup: move trip-related functions into own translation unit 2019-06-19 13:11:10 -07:00
parse.c Cleanup: use add_to_dive_table() in record_dive_to_table() 2019-06-19 13:11:10 -07:00
parse.h Cleanup: move trip-related functions into own translation unit 2019-06-19 13:11:10 -07:00
planner.c Planner: Wait minimum switch time when bailing out to OC 2019-06-28 15:58:52 +02:00
planner.h Cleanup: remove unused global variables plangflow and plangfhigh 2019-06-19 13:11:10 -07:00
plannernotes.c Update deco disclaimer 2019-05-29 15:04:33 +03:00
pref.h Add UI element for final surface segment in planner 2019-03-29 06:51:12 -07:00
profile.c Cleanup: call calculate_max_limits_new() in create_plot_info_new() 2019-07-06 11:23:35 -07:00
profile.h Cleanup: call calculate_max_limits_new() in create_plot_info_new() 2019-07-06 11:23:35 -07:00
qt-ble.cpp qt-ble: return DC_STATUS_TIMEOUT rather than DC_STATUS_IO on timeout 2019-04-18 05:42:54 +12: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 Core: use British translations in South Africa 2018-11-01 09:30:14 -07:00
qthelper.cpp Cleanup: move trip-related functions into own translation unit 2019-06-19 13:11:10 -07:00
qthelper.h Cleanup: move trip-related functions into own translation unit 2019-06-19 13:11:10 -07:00
qtserialbluetooth.cpp drop support for Qt 5.4 and before 2019-03-27 07:36:33 -07:00
save-git.c Fix cylinder gas type saving when we have bogus gas use data 2019-07-14 22:17:13 +02:00
save-html.c Cleanup: move trip-related functions into own translation unit 2019-06-19 13:11:10 -07:00
save-html.h Cleanup: remove includes from extern "C" block 2019-06-28 20:18:02 +09:00
save-profiledata.c Cleanup: call calculate_max_limits_new() in create_plot_info_new() 2019-07-06 11:23:35 -07:00
save-profiledata.h Write dive data as video subtitles 2019-04-16 20:38:19 +02:00
save-xml.c Fix cylinder gas type saving when we have bogus gas use data 2019-07-14 22:17:13 +02:00
serial_ftdi.c Fix Cressi interface ftdi opening bug 2018-11-18 20:01:28 +02:00
sha1.c
sha1.h
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 Add UI element for final surface segment in planner 2019-03-29 06:51:12 -07:00
subsurfacestartup.h Fix ownership issues in preferences code 2017-11-25 07:41:09 -08: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 Cleanup: generate clear_*_table() functions by macro 2019-06-19 13:11:10 -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 tag functions into own translation unit 2019-06-19 13:11:10 -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 Cleanup: move unit-related functions to own translation unit 2019-06-19 13:11:10 -07:00
units.h Cleanup: move unit-related functions to own translation unit 2019-06-19 13:11:10 -07:00
unix.c Don't allow empty username for git 2019-01-16 02:38:30 +01:00
version.c Add SPDX header to remaining core files 2017-04-29 13:32:55 -07:00
version.h
videoframeextractor.cpp Thumbnailer: improve error message 2019-07-11 00:24:23 +09: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 windows.c: fix wrong usage of wcslen() for utf8 conversation 2018-12-29 18:27:21 +01: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: remove redundant checks for null dive site 2019-04-12 18:19:07 +03:00
worldmap-save.h Add SPDX header to core C files 2017-04-29 13:32:55 -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