Message ID | 1542872803-29060-1-git-send-email-hofrat@osadl.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iio: adc: meson-saradc: check for devm_kasprintf failure | expand |
On Thu, Nov 22, 2018 at 8:52 AM Nicholas Mc Guire <hofrat@osadl.org> wrote: > > devm_kasprintf() may return NULL on failure of internal allocation thus > the assignments to init.name are not safe if not checked. On error > meson_sar_adc_clk_init() returns negative values so -ENOMEM in the > (unlikely) failure case of devm_kasprintf() should be fine here. > > Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> > Fixes: 3adbf3427330 ("iio: adc: add a driver for the SAR ADC found in Amlogic Meson SoCs") Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> thank you for the patch! I tested the non-error case on my Odroid-C1 and it still works fine. Regards Martin
On Thu, 22 Nov 2018 22:44:55 +0100 Martin Blumenstingl <martin.blumenstingl@googlemail.com> wrote: > On Thu, Nov 22, 2018 at 8:52 AM Nicholas Mc Guire <hofrat@osadl.org> wrote: > > > > devm_kasprintf() may return NULL on failure of internal allocation thus > > the assignments to init.name are not safe if not checked. On error > > meson_sar_adc_clk_init() returns negative values so -ENOMEM in the > > (unlikely) failure case of devm_kasprintf() should be fine here. > > > > Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> > > Fixes: 3adbf3427330 ("iio: adc: add a driver for the SAR ADC found in Amlogic Meson SoCs") > Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> > > thank you for the patch! > I tested the non-error case on my Odroid-C1 and it still works fine. Applied. I also added a tested by tag for you Martin as it's always nice for the log to reflect when people make the effort! Applied to the togreg branch of iio.git and pushed out as testing for the autobuilders to play with it. Thanks, Jonathan > > > Regards > Martin
diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c index 028ccd2..672a5de 100644 --- a/drivers/iio/adc/meson_saradc.c +++ b/drivers/iio/adc/meson_saradc.c @@ -589,6 +589,9 @@ static int meson_sar_adc_clk_init(struct iio_dev *indio_dev, init.name = devm_kasprintf(&indio_dev->dev, GFP_KERNEL, "%pOF#adc_div", indio_dev->dev.of_node); + if (!init.name) + return -ENOMEM; + init.flags = 0; init.ops = &clk_divider_ops; clk_parents[0] = __clk_get_name(priv->clkin); @@ -608,6 +611,9 @@ static int meson_sar_adc_clk_init(struct iio_dev *indio_dev, init.name = devm_kasprintf(&indio_dev->dev, GFP_KERNEL, "%pOF#adc_en", indio_dev->dev.of_node); + if (!init.name) + return -ENOMEM; + init.flags = CLK_SET_RATE_PARENT; init.ops = &clk_gate_ops; clk_parents[0] = __clk_get_name(priv->adc_div_clk);
devm_kasprintf() may return NULL on failure of internal allocation thus the assignments to init.name are not safe if not checked. On error meson_sar_adc_clk_init() returns negative values so -ENOMEM in the (unlikely) failure case of devm_kasprintf() should be fine here. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Fixes: 3adbf3427330 ("iio: adc: add a driver for the SAR ADC found in Amlogic Meson SoCs") --- Problem located with an experimental coccinelle script Patch was compile tested with: multi_v7_defconfig (implies ARCH_MESON=y & MESON_SARADC=y) Patch is against 4.20-rc3 (localversion-next is next-20181122) drivers/iio/adc/meson_saradc.c | 6 ++++++ 1 file changed, 6 insertions(+)