From 27deb317b00aa61bedea8d781d8cff8be9a3720e Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Wed, 14 Jun 2017 01:45:18 +0300 Subject: tankinfomodel.cpp: clamp row index to [0 - MAX_TANK_INFO] MAX_TANK_INFO is a new macro in dive.h to define the maximum number of tank_info_t objects. TankInfoModel's data() and setData() now check for valid row indexes before accessing the tank_info[] array directly. Without this patch TankInfoMode::data() can cause a SIGSEGV. Reported-by: Pedro Neves Signed-off-by: Lubomir I. Ivanov Signed-off-by: Dirk Hohndel --- core/dive.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'core') diff --git a/core/dive.h b/core/dive.h index c65d3ffc5..2565b4af0 100644 --- a/core/dive.h +++ b/core/dive.h @@ -296,6 +296,7 @@ struct divecomputer { #define MAX_CYLINDERS (20) #define MAX_WEIGHTSYSTEMS (6) +#define MAX_TANK_INFO (100) #define W_IDX_PRIMARY 0 #define W_IDX_SECONDARY 1 @@ -923,7 +924,7 @@ struct tank_info_t { const char *name; int cuft, ml, psi, bar; }; -extern struct tank_info_t tank_info[100]; +extern struct tank_info_t tank_info[MAX_TANK_INFO]; struct ws_info_t { const char *name; -- cgit v1.2.3-70-g09d2