From cc9beb6e96394e5a562fb6ab100ea014e0b7270d Mon Sep 17 00:00:00 2001 From: "rudi ;-)" Date: Wed, 21 Feb 2018 01:15:39 +0100 Subject: [PATCH] Casting & Integer overflow issue fixed in "calc_pressure" API --- bme680.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bme680.c b/bme680.c index a8ed299..22c3a7e 100644 --- a/bme680.c +++ b/bme680.c @@ -924,7 +924,7 @@ static uint32_t calc_pressure(uint32_t pres_adc, const struct bme680_dev *dev) var1 = ((32768 + var1) * (int32_t)dev->calib.par_p1) >> 15; pressure_comp = 1048576 - pres_adc; pressure_comp = (int32_t)((pressure_comp - (var2 >> 12)) * ((uint32_t)3125)); - var4 = (int32_t)(((uint32_t)1) << 31); + var4 = (1 << 30); if (pressure_comp >= var4) pressure_comp = ((pressure_comp / (uint32_t)var1) << 1); else