Message ID | 20210306141106.18695-1-baijiaju1990@gmail.com |
---|---|
State | New |
Headers | show |
Series | thermal: thermal_of: fix error return code of thermal_of_populate_bind_params() | expand |
On 06/03/2021 15:11, Jia-Ju Bai wrote: > When kcalloc() fails and __tcbp is NULL, no error return code of > thermal_of_populate_bind_params() is assigned. > To fix this bug, ret is assigned with -ENOMEM in this case. > > Reported-by: TOTE Robot <oslab@tsinghua.edu.cn> > Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> > --- > drivers/thermal/thermal_of.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c > index 69ef12f852b7..e8c9041482e9 100644 > --- a/drivers/thermal/thermal_of.c > +++ b/drivers/thermal/thermal_of.c > @@ -710,8 +710,10 @@ static int thermal_of_populate_bind_params(struct device_node *np, > } > > __tcbp = kcalloc(count, sizeof(*__tcbp), GFP_KERNEL); > - if (!__tcbp) > + if (!__tcbp) { > + ret = -ENOMEM; > goto end; > + } Thank you for your patch. Seems like the same happens a few lines before: count = of_count_phandle_with_args(np, "cooling-device", "#cooling-cells"); if (!count) { pr_err("Add a cooling_device property with at least one device\n"); goto end; } Mind to send a patch fixing both ? Thanks -- Daniel -- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog
On 2021/3/10 20:02, Daniel Lezcano wrote: > On 06/03/2021 15:11, Jia-Ju Bai wrote: >> When kcalloc() fails and __tcbp is NULL, no error return code of >> thermal_of_populate_bind_params() is assigned. >> To fix this bug, ret is assigned with -ENOMEM in this case. >> >> Reported-by: TOTE Robot <oslab@tsinghua.edu.cn> >> Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> >> --- >> drivers/thermal/thermal_of.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c >> index 69ef12f852b7..e8c9041482e9 100644 >> --- a/drivers/thermal/thermal_of.c >> +++ b/drivers/thermal/thermal_of.c >> @@ -710,8 +710,10 @@ static int thermal_of_populate_bind_params(struct device_node *np, >> } >> >> __tcbp = kcalloc(count, sizeof(*__tcbp), GFP_KERNEL); >> - if (!__tcbp) >> + if (!__tcbp) { >> + ret = -ENOMEM; >> goto end; >> + } > Thank you for your patch. > > Seems like the same happens a few lines before: > > count = of_count_phandle_with_args(np, "cooling-device", > "#cooling-cells"); > if (!count) { > pr_err("Add a cooling_device property with at least one > device\n"); > goto end; > } > > Mind to send a patch fixing both ? > Thanks for the reply and advice. I will send a new version of the patch to fix them both. Best wishes, Jia-Ju Bai
diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c index 69ef12f852b7..e8c9041482e9 100644 --- a/drivers/thermal/thermal_of.c +++ b/drivers/thermal/thermal_of.c @@ -710,8 +710,10 @@ static int thermal_of_populate_bind_params(struct device_node *np, } __tcbp = kcalloc(count, sizeof(*__tcbp), GFP_KERNEL); - if (!__tcbp) + if (!__tcbp) { + ret = -ENOMEM; goto end; + } for (i = 0; i < count; i++) { ret = of_parse_phandle_with_args(np, "cooling-device",
When kcalloc() fails and __tcbp is NULL, no error return code of thermal_of_populate_bind_params() is assigned. To fix this bug, ret is assigned with -ENOMEM in this case. Reported-by: TOTE Robot <oslab@tsinghua.edu.cn> Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> --- drivers/thermal/thermal_of.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)