]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: adc: qcom-spmi-adc5-gen3: Fix off by one in adc5_gen3_get_fw_channel_data()
authorDan Carpenter <error27@gmail.com>
Fri, 10 Apr 2026 10:12:13 +0000 (13:12 +0300)
committerJonathan Cameron <jic23@kernel.org>
Fri, 15 May 2026 11:01:38 +0000 (12:01 +0100)
The > in "if (chan > ADC5_MAX_CHANNEL)" should be >= to prevent an out
of bound read of the adc->data->adc_chans[] array.

Fixes: baff45179e90 ("iio: adc: Add support for QCOM PMIC5 Gen3 ADC")
Signed-off-by: Dan Carpenter <error27@gmail.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/adc/qcom-spmi-adc5-gen3.c

index f8168a14b90734a9ee5957e6f63c1067461ac430..48c793b18d11e9fc652b38abbd9d914af05533fa 100644 (file)
@@ -482,7 +482,7 @@ static int adc5_gen3_get_fw_channel_data(struct adc5_chip *adc,
        sid = FIELD_GET(ADC5_GEN3_VIRTUAL_SID_MASK, chan);
        chan = FIELD_GET(ADC5_GEN3_CHANNEL_MASK, chan);
 
-       if (chan > ADC5_MAX_CHANNEL)
+       if (chan >= ADC5_MAX_CHANNEL)
                return dev_err_probe(dev, -EINVAL,
                                     "%s invalid channel number %d\n",
                                     name, chan);