pinctrl: berlin: fix error return code of berlin_pinctrl_build_state()
authorMeng Tang <tangmeng@uniontech.com>
Thu, 3 Mar 2022 08:02:06 +0000 (16:02 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 15 Mar 2022 01:18:57 +0000 (02:18 +0100)
When krealloc() fails and pctrl->functions is NULL, no error
return code of berlin_pinctrl_build_state() is assigned.
To fix this bug, ret is assigned with -ENOMEM when pctrl->functions
is NULL.

Signed-off-by: Meng Tang <tangmeng@uniontech.com>
Link: https://lore.kernel.org/r/20220303080206.16463-1-tangmeng@uniontech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/berlin/berlin.c

index b17a03cf87bea7eaa58bfb1a762355ee619ea825..a073eedd71aa5b3967ffff3d0a3d6d3b4c52e780 100644 (file)
@@ -233,6 +233,8 @@ static int berlin_pinctrl_build_state(struct platform_device *pdev)
        pctrl->functions = krealloc(pctrl->functions,
                                    pctrl->nfunctions * sizeof(*pctrl->functions),
                                    GFP_KERNEL);
+       if (!pctrl->functions)
+               return -ENOMEM;
 
        /* map functions to theirs groups */
        for (i = 0; i < pctrl->desc->ngroups; i++) {