diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-04-20 23:22:48 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-04-20 23:28:51 -0700 |
commit | 216fa8d5439880785c2eaa7fccd29d9befa0280a (patch) | |
tree | 2c803b190e57680110a31131f464bb8408a6b8f5 /parse-xml.c | |
parent | 136282f88a28e11f6bfa26750a85b5f1e2bf8be3 (diff) | |
download | subsurface-216fa8d5439880785c2eaa7fccd29d9befa0280a.tar.gz |
Don't crash if add_gas_switch_event() gets called with invalid index
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'parse-xml.c')
-rw-r--r-- | parse-xml.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/parse-xml.c b/parse-xml.c index 0abcfcb0c..a02c4afac 100644 --- a/parse-xml.c +++ b/parse-xml.c @@ -750,6 +750,9 @@ static void try_to_match_autogroup(const char *name, char *buf) void add_gas_switch_event(struct dive *dive, struct divecomputer *dc, int seconds, int idx) { + /* sanity check so we don't crash */ + if (idx < 0 || idx >= MAX_CYLINDERS) + return; /* The gas switch event format is insane for historical reasons */ struct gasmix *mix = &dive->cylinder[idx].gasmix; int o2 = get_o2(mix); |