staging: clocking-wizard: check for a valid clk_name pointer
authorDevendra Naga <devendra.aaru@gmail.com>
Sat, 29 Nov 2014 22:48:34 +0000 (17:48 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Dec 2014 00:45:24 +0000 (16:45 -0800)
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.

Signed-off-by: Devendra Naga <devendra.aaru@gmail.com>
Reviewed-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/clocking-wizard/clk-xlnx-clock-wizard.c

index 7202d8e889aab9a427dd20a411015c7704d3d6da..0a3a8fe67fb57ae9479669e92511ded16ef0d6ca 100644 (file)
@@ -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]),