diff options
author | Fabrice Gasnier <fabrice.gasnier@st.com> | 2018-02-23 13:51:00 +0100 |
---|---|---|
committer | Jonathan Cameron <Jonathan.Cameron@huawei.com> | 2018-04-28 16:17:59 +0100 |
commit | dfa105b1f602bdd63296ab0abd2c6ec2cb09eb89 (patch) | |
tree | a78e58acee0ddbe081abb08ce169549493914590 | |
parent | c620da3ab37eb8794c8f549a99db59286f4ebd3a (diff) | |
download | linux-dfa105b1f602bdd63296ab0abd2c6ec2cb09eb89.tar.bz2 |
iio: adc: stm32-dfsdm: add check on max filter id
reg property should be checked against number of available filters.
BTW, dfsdm->num_fls wasn't used. But it can be used for this purpose.
This prevents using data out of allocated dfsdm->fl_list array.
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
-rw-r--r-- | drivers/iio/adc/stm32-dfsdm-adc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/iio/adc/stm32-dfsdm-adc.c b/drivers/iio/adc/stm32-dfsdm-adc.c index df264e042bd8..cc8ab86c1caa 100644 --- a/drivers/iio/adc/stm32-dfsdm-adc.c +++ b/drivers/iio/adc/stm32-dfsdm-adc.c @@ -1108,8 +1108,8 @@ static int stm32_dfsdm_adc_probe(struct platform_device *pdev) platform_set_drvdata(pdev, adc); ret = of_property_read_u32(dev->of_node, "reg", &adc->fl_id); - if (ret != 0) { - dev_err(dev, "Missing reg property\n"); + if (ret != 0 || adc->fl_id >= adc->dfsdm->num_fls) { + dev_err(dev, "Missing or bad reg property\n"); return -EINVAL; } |