drivers: sensor: ms5607: fix potential integer overlow
Fix potential integer overflow by making operands to multiplication wider. Fixes #21673 Signed-off-by: Thomas Schmid <tom@lfence.de>
This commit is contained in:
parent
010e35850e
commit
03e992a6b5
1 changed files with 4 additions and 3 deletions
|
@ -43,14 +43,15 @@ static void ms5607_compensate(struct ms5607_data *data,
|
|||
* SECOND ORDER TEMPERATURE COMPENSATION
|
||||
*/
|
||||
|
||||
temp_sq = (data->temperature - 2000) * (data->temperature - 2000);
|
||||
temp_sq = (s64_t)(data->temperature - 2000) *
|
||||
(s64_t)(data->temperature - 2000);
|
||||
if (data->temperature < 2000) {
|
||||
Ti = (dT * dT) / (1ll << 31);
|
||||
OFFi = (61ll * temp_sq) / (1ll << 4);
|
||||
SENSi = 2ll * temp_sq;
|
||||
if (data->temperature < -1500) {
|
||||
temp_sq = (data->temperature + 1500) *
|
||||
(data->temperature + 1500);
|
||||
temp_sq = (s64_t)(data->temperature + 1500) *
|
||||
(s64_t)(data->temperature + 1500);
|
||||
OFFi += 15ll * temp_sq;
|
||||
SENSi += 8ll * temp_sq;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue