Skip to content

Commit 3585c37

Browse files
fabocodekartben
authored andcommitted
sensor: bmp180: fix: untrusted divisor caught by coverity
- Checking the value before applying it as a divisor Signed-off-by: Fabian Barraez <[email protected]>
1 parent 4209d78 commit 3585c37

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

drivers/sensor/bosch/bmp180/bmp180.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,10 +278,16 @@ static void bmp180_compensate_temp(struct bmp180_data *data)
278278
{
279279
int32_t partial_data1;
280280
int32_t partial_data2;
281+
int32_t divisor;
281282
struct bmp180_cal_data *cal = &data->cal;
282283

283284
partial_data1 = (data->raw_temp - cal->ac6) * cal->ac5 / 0x8000;
284-
partial_data2 = cal->mc * 0x800 / (partial_data1 + cal->md);
285+
286+
/* Check divisor before division */
287+
divisor = partial_data1 + cal->md;
288+
__ASSERT(divisor != 0, "divisor is zero: partial_data1=%d, md=%d", partial_data1, cal->md);
289+
290+
partial_data2 = cal->mc * 0x800 / divisor;
285291

286292
/* Store for pressure calculation */
287293
data->comp_temp = (partial_data1 + partial_data2);

0 commit comments

Comments
 (0)