2022-03-03 08:20:16

by tangmeng

[permalink] [raw]
Subject: [PATCH] pinctrl: berlin: fix error return code of berlin_pinctrl_build_state()

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 <[email protected]>
---
drivers/pinctrl/berlin/berlin.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/pinctrl/berlin/berlin.c b/drivers/pinctrl/berlin/berlin.c
index b17a03cf87be..a073eedd71aa 100644
--- a/drivers/pinctrl/berlin/berlin.c
+++ b/drivers/pinctrl/berlin/berlin.c
@@ -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++) {
--
2.20.1




2022-03-17 05:05:40

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: berlin: fix error return code of berlin_pinctrl_build_state()

On Thu, Mar 3, 2022 at 9:02 AM Meng Tang <[email protected]> wrote:

> 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 <[email protected]>

Patch applied!

Yours,
Linus Walleij