From 6d88a624172a17dafbdcaa03f1e7a058ad7ccc0f Mon Sep 17 00:00:00 2001 From: sudarsan N Date: Mon, 9 Jun 2025 12:37:17 +0530 Subject: [PATCH] drivers: adc: fix underflow in lmp90xxx_adc_start_read channel check Prevent integer underflow when sequence->channels is 0. Add an explicit check before calling find_msb_set(). Coverity CID: 487765 Signed-off-by: sudarsan N --- drivers/adc/adc_lmp90xxx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/adc/adc_lmp90xxx.c b/drivers/adc/adc_lmp90xxx.c index ab06960b41d..e2531618a03 100644 --- a/drivers/adc/adc_lmp90xxx.c +++ b/drivers/adc/adc_lmp90xxx.c @@ -503,9 +503,9 @@ static int lmp90xxx_adc_start_read(const struct device *dev, return -ENOTSUP; } - if (!lmp90xxx_has_channel(dev, find_msb_set(sequence->channels) - 1)) { - LOG_ERR("unsupported channels in mask: 0x%08x", - sequence->channels); + if (sequence->channels == 0 || + !lmp90xxx_has_channel(dev, find_msb_set(sequence->channels) - 1)) { + LOG_ERR("unsupported channels in mask: 0x%08x", sequence->channels); return -ENOTSUP; }