Message ID | 1542994408-28466-1-git-send-email-hofrat@osadl.org (mailing list archive) |
---|---|
State | Changes Requested, archived |
Headers | show |
Series | clk: davinci: check for devm_kasprintf() failure | expand |
Quoting Nicholas Mc Guire (2018-11-23 09:33:28) > devm_kasprintf() may return NULL on failure of internal allocation thus > the assignment to lpsc->pm_domain.name is not safe if not checked. On > error davinci_lpsc_clk_register() returns a pointer to davinci_lpsc_clk > which is checked with IS_ERR() so returning ERR_PTR(-ENOMEM) should be > fine here. > > Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> > Fixes: c6ed4d734bc7 ("clk: davinci: New driver for davinci PSC clocks") > --- > > Problem located with experimental coccinelle script > > Patch was compile tested with: davinci_all_defconfig > > Patch is against 4.20-rc3 (localversion-next is next-20181123) There are a bunch of other allocation issues with this driver so I'd rather not expend the effort to review the one coccinelle script fix here and instead I'd like to see the whole fix to this driver. Please add proper lifetime management for all the allocations in this code.
diff --git a/drivers/clk/davinci/psc.c b/drivers/clk/davinci/psc.c index 5b69e24..ca9b5c3 100644 --- a/drivers/clk/davinci/psc.c +++ b/drivers/clk/davinci/psc.c @@ -278,6 +278,11 @@ davinci_lpsc_clk_register(struct device *dev, const char *name, lpsc->pm_domain.name = devm_kasprintf(dev, GFP_KERNEL, "%s: %s", best_dev_name(dev), name); + if (!lpsc->pm_domain.name) { + kfree(lpsc); + return ERR_PTR(-ENOMEM); + } + lpsc->pm_domain.attach_dev = davinci_psc_genpd_attach_dev; lpsc->pm_domain.detach_dev = davinci_psc_genpd_detach_dev; lpsc->pm_domain.flags = GENPD_FLAG_PM_CLK;
devm_kasprintf() may return NULL on failure of internal allocation thus the assignment to lpsc->pm_domain.name is not safe if not checked. On error davinci_lpsc_clk_register() returns a pointer to davinci_lpsc_clk which is checked with IS_ERR() so returning ERR_PTR(-ENOMEM) should be fine here. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Fixes: c6ed4d734bc7 ("clk: davinci: New driver for davinci PSC clocks") --- Problem located with experimental coccinelle script Patch was compile tested with: davinci_all_defconfig Patch is against 4.20-rc3 (localversion-next is next-20181123) drivers/clk/davinci/psc.c | 5 +++++ 1 file changed, 5 insertions(+)