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

Reply via email to