aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/clk/clk-fixed-factor.c
diff options
context:
space:
mode:
authorStephen Boyd <sboyd@kernel.org>2019-04-23 10:46:51 -0700
committerStephen Boyd <sboyd@kernel.org>2019-04-23 10:46:51 -0700
commite4818d615b58f145ace70fefa43aeae8611b55a1 (patch)
tree22f2e89c509ea561c2c706816f4aab6cced56f82 /drivers/clk/clk-fixed-factor.c
parentclk: fixed-factor: Let clk framework find parent (diff)
downloadwireguard-linux-e4818d615b58f145ace70fefa43aeae8611b55a1.tar.xz
wireguard-linux-e4818d615b58f145ace70fefa43aeae8611b55a1.zip
clk: fixed-factor: Initialize clk_init_data on stack
This structure can be full of junk from the stack if we don't initialize it. The clk framework tests clk_init_data::parent_names for non-NULL and then considers that as the parent name pointer, but if it's full of junk then we'll try to deref a bad pointer and oops the system. Let's initialize the structure so that only clk_init_data::parent_names or clk_init_data::parent_data is set, and not both. Reported-by: "kernelci.org bot" <bot@kernelci.org> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Tested-by: Tony Lindgren <tony@atomide.com> Fixes: ecbf3f1795fd ("clk: fixed-factor: Let clk framework find parent") Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Diffstat (limited to 'drivers/clk/clk-fixed-factor.c')
-rw-r--r--drivers/clk/clk-fixed-factor.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/clk-fixed-factor.c
index 5b09f2cdb7de..2d988a7585d5 100644
--- a/drivers/clk/clk-fixed-factor.c
+++ b/drivers/clk/clk-fixed-factor.c
@@ -70,7 +70,7 @@ __clk_hw_register_fixed_factor(struct device *dev, struct device_node *np,
unsigned long flags, unsigned int mult, unsigned int div)
{
struct clk_fixed_factor *fix;
- struct clk_init_data init;
+ struct clk_init_data init = { };
struct clk_parent_data pdata = { .index = index };
struct clk_hw *hw;
int ret;