From f09afad5a0515e2e40a91385d115840bc321697a Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Wed, 11 Dec 2013 15:26:47 +0200 Subject: divelist.c: Fix possible NULL pointer deref. calculate_cns(): The check if prev_dive is NULL should be before calling prev_dive->when. Reported by the program cppcheck. Signed-off-by: Lubomir I. Ivanov Signed-off-by: Dirk Hohndel --- divelist.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'divelist.c') diff --git a/divelist.c b/divelist.c index c69a34dc5..0004832c6 100644 --- a/divelist.c +++ b/divelist.c @@ -266,10 +266,12 @@ static int calculate_cns(struct dive *dive) divenr = get_divenr(dive); if (divenr) { prev_dive = get_dive(divenr -1 ); - endtime = prev_dive->when + prev_dive->duration.seconds; - if (prev_dive && dive->when < (endtime + 3600 * 12)) { - cns = calculate_cns(prev_dive); - cns = cns * 1/pow(2, (dive->when - endtime) / (90.0 * 60.0)); + if (prev_dive) { + endtime = prev_dive->when + prev_dive->duration.seconds; + if (dive->when < (endtime + 3600 * 12)) { + cns = calculate_cns(prev_dive); + cns = cns * 1/pow(2, (dive->when - endtime) / (90.0 * 60.0)); + } } } /* Caclulate the cns for each sample in this dive and sum them */ -- cgit v1.2.3-70-g09d2