[PATCH] staging: clocking-wizard: check for a valid clk_name pointer
Devendra Naga
devendra.aaru at gmail.com
Sat Nov 29 22:48:34 UTC 2014
The clk_name gets the return value from kasprintf (part of which does the
allocation of the returned buffer). So check the return pointer
before using it for clk_register_fixed_factor.
Cc: Soren Brinkmann <soren.brinkmann at xilinx.com>
Signed-off-by: Devendra Naga <devendra.aaru at gmail.com>
---
I have only compile tested this with the following commands
make ARCH=arm CROSS_COMPILE=arm-linux-gnu- allmodconfig
and then
make ARCH=arm CROSS_COMPILE=arm-linux-gnu- drivers/staging/clocking-wizard/
drivers/staging/clocking-wizard/clk-xlnx-clock-wizard.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/staging/clocking-wizard/clk-xlnx-clock-wizard.c b/drivers/staging/clocking-wizard/clk-xlnx-clock-wizard.c
index 7202d8e..0a3a8fe 100644
--- a/drivers/staging/clocking-wizard/clk-xlnx-clock-wizard.c
+++ b/drivers/staging/clocking-wizard/clk-xlnx-clock-wizard.c
@@ -221,6 +221,11 @@ static int clk_wzrd_probe(struct platform_device *pdev)
reg = (readl(clk_wzrd->base + WZRD_CLK_CFG_REG(0)) &
WZRD_DIVCLK_DIVIDE_MASK) >> WZRD_DIVCLK_DIVIDE_SHIFT;
clk_name = kasprintf(GFP_KERNEL, "%s_mul_div", dev_name(&pdev->dev));
+ if (!clk_name) {
+ ret = -ENOMEM;
+ goto err_rm_int_clk;
+ }
+
clk_wzrd->clks_internal[wzrd_clk_mul_div] = clk_register_fixed_factor(
&pdev->dev, clk_name,
__clk_get_name(clk_wzrd->clks_internal[wzrd_clk_mul]),
--
1.9.3
More information about the devel
mailing list