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 <hof...@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(+) 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; -- 2.1.4