clk: gpio: fix memory leak in of_gpio_clk_setup()
PATCH 1/1 clk: gpio: fix memory leak in of_gpio_clk_setup()
Reported by Coverity.
--- drivers/clk/clk-gpio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/clk/clk-gpio.c +3 -1
@@ -294,8 +294,10 @@ static void __init of_gpio_clk_setup(struct device_node *node, num_parents =of_clk_get_parent_count (node); parent_names =kcalloc (num_parents,sizeof (char *),GFP_KERNEL ); -if (!parent_names) +if (!parent_names) { +kfree (data);return ; + }for (i =0 ; i < num_parents; i++) parent_names[i] =of_clk_get_parent_name (node, i);
Signature · 1 line
2.6.0.rc2.230.g3dd15c0
PATCH 1/1 clk: gpio: handle error codes for of_clk_get_parent_count()
We might make bad memory allocations if we get (e.g.) -ENOSYS from of_clk_get_parent_count().
Noticed by Coverity.
---
Sorry, I noticed Coverity was complaining about 1 more.
drivers/clk/clk-gpio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/clk/clk-gpio.c +4 -2
@@ -287,12 +287,14 @@ static void __init of_gpio_clk_setup(struct device_node *node,const char **parent_names;int i, num_parents; + num_parents =of_clk_get_parent_count (node); +if (num_parents <0 ) +return ; + data =kzalloc (sizeof (*data),GFP_KERNEL );if (!data)return ; - num_parents =of_clk_get_parent_count (node); - parent_names =kcalloc (num_parents,sizeof (char *),GFP_KERNEL );if (!parent_names) {kfree (data);
Signature · 1 line
2.6.0.rc2.230.g3dd15c0
Re: [PATCH] clk: gpio: handle error codes for of_clk_get_parent_count()
Quoting Brian Norris (2015-12-16 10:35:03)
Quoted 8 lines
We might make bad memory allocations if we get (e.g.)
-ENOSYSfromof_clk_get_parent_count().
=Noticed by Coverity.
=Fixes f66541ba02d5 ("clk: gpio: Get parent clk names in of_gpio_clk_setu=
p()")
Quoted 4 lines
Signed-off-by Brian Norris <[email protected]>Cc Jyri Sarha <[email protected]>Cc Sergej Sawazki <[email protected]>Cc Stephen Boyd <[email protected]>
Thanks for the fix. Applied.
Regards,
Mike
drivers/clk/clk-gpio.c static void __init of_gpio_clk_setup(struct device_=
Quoted 13 lines
---
Sorry, I noticed Coverity was complaining about 1 more. =drivers/clk/clk-gpio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)=
drivers/clk/clk-gpio.c +0
-0@@ -287,12 +287,14 @@ static void __init of_gpio_clk_setup(struct device_=
node *node,
Quoted 22 lines
drivers/clk/clk-gpio.c +4
-2const char **parent_names;int i, num_parents; = + num_parents =3D of_clk_get_parent_count(node); +if (num_parents <0 ) +return ; + data =3D kzalloc(sizeof(*data), GFP_KERNEL);if (!data)return ; = - num_parents =3D of_clk_get_parent_count(node); - parent_names =3D kcalloc(num_parents, sizeof(char *), GFP_KERNEL);if (!parent_names) { kfree(data);-- =
2.6.0.rc2.230.g3dd15c0
=20
Quoting Brian Norris (2015-12-16 10:28:31)
Quoted 4 lines
Reported by Coverity.
=Fixes f66541ba02d5 ("clk: gpio: Get parent clk names in of_gpio_clk_setu=
p()")
Quoted 4 lines
Signed-off-by Brian Norris <[email protected]>Cc Jyri Sarha <[email protected]>Cc Sergej Sawazki <[email protected]>Cc Stephen Boyd <[email protected]>
Thanks for the fix. I already applied this one:
http://lkml.kernel.org/r/<1450852439-366-1-git-send-email-sudipm.mukherjee@=
gmail.com>
Regards,
Mike
drivers/clk/clk-gpio.c static void __init of_gpio_clk_setup(struct device_n=
Quoted 10 lines
--- drivers/clk/clk-gpio.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)=
drivers/clk/clk-gpio.c +0
-0@@ -294,8 +294,10 @@ static void __init of_gpio_clk_setup(struct device_n=
ode *node,
Quoted 17 lines
drivers/clk/clk-gpio.c +3
-1num_parents =3D of_clk_get_parent_count(node); = parent_names =3D kcalloc(num_parents, sizeof(char *), GFP_KERNEL); -if (!parent_names) +if (!parent_names) { +kfree (data);return ; + } =for (i =3D 0; i < num_parents; i++) parent_names[i] =3D of_clk_get_parent_name(node, i);-- =
2.6.0.rc2.230.g3dd15c0
=20