pinctrl: microchip-sgpio: check return value of devm_kasprintf()
authorClaudiu Beznea <claudiu.beznea@microchip.com>
Thu, 15 Jun 2023 10:53:32 +0000 (13:53 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Jul 2023 14:21:38 +0000 (16:21 +0200)
[ Upstream commit 310cd4c206cd04696ccbfd1927b5ab6973e8cc8e ]

devm_kasprintf() returns a pointer to dynamically allocated memory.
Pointer could be NULL in case allocation fails. Check pointer validity.
Identified with coccinelle (kmerr.cocci script).

Fixes: 7e5ea974e61c ("pinctrl: pinctrl-microchip-sgpio: Add pinctrl driver for Microsemi Serial GPIO")
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20230615105333.585304-3-claudiu.beznea@microchip.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pinctrl/pinctrl-microchip-sgpio.c

index af27b72..96a20ce 100644 (file)
@@ -816,6 +816,9 @@ static int microchip_sgpio_register_bank(struct device *dev,
        pctl_desc->name = devm_kasprintf(dev, GFP_KERNEL, "%s-%sput",
                                         dev_name(dev),
                                         bank->is_input ? "in" : "out");
+       if (!pctl_desc->name)
+               return -ENOMEM;
+
        pctl_desc->pctlops = &sgpio_pctl_ops;
        pctl_desc->pmxops = &sgpio_pmx_ops;
        pctl_desc->confops = &sgpio_confops;