From 95a0a0f5a6038d5a73775e2060e29d09d0953d7e Mon Sep 17 00:00:00 2001 From: "Robert C. Helling" Date: Thu, 2 Jan 2020 23:46:06 +0100 Subject: Fix get_divemode logic Commit dbb504 tried to prevent an uninitialized dc pointer from being dereferenced. But I screwed up the logic always setting the event pointer to NULL. This fixes this error. Reported-by: willemferguson@zoology.up.ac.za Signed-off-by: Robert C. Helling --- core/dive.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'core') diff --git a/core/dive.c b/core/dive.c index 23262540c..0cf050ba9 100644 --- a/core/dive.c +++ b/core/dive.c @@ -246,9 +246,11 @@ void add_extra_data(struct divecomputer *dc, const char *key, const char *value) enum divemode_t get_current_divemode(const struct divecomputer *dc, int time, const struct event **evp, enum divemode_t *divemode) { const struct event *ev = *evp; - if (*divemode == UNDEF_COMP_TYPE && dc) { - *divemode = dc->divemode; - ev = get_next_event(dc->events, "modechange"); + if (dc) { + if (*divemode == UNDEF_COMP_TYPE) { + *divemode = dc->divemode; + ev = get_next_event(dc->events, "modechange"); + } } else { ev = NULL; } -- cgit v1.2.3-70-g09d2