OSDN Git Service

clk: palmas: fix a possible NULL dereference
authorLABBE Corentin <clabbe.montjoie@gmail.com>
Wed, 25 Nov 2015 12:52:02 +0000 (13:52 +0100)
committerStephen Boyd <sboyd@codeaurora.org>
Sat, 30 Jan 2016 00:57:09 +0000 (16:57 -0800)
of_match_device could return NULL, and so cause a NULL pointer
dereference later.
Even if the probability of this case is very low, fixing it made
static analyzers happy.

Solving this with of_device_get_match_data made also code simplier.

Reported-by: coverity (CID 1324137)
Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
drivers/clk/clk-palmas.c

index c55e774..9c0b8e6 100644 (file)
@@ -241,13 +241,13 @@ static int palmas_clks_probe(struct platform_device *pdev)
        struct palmas *palmas = dev_get_drvdata(pdev->dev.parent);
        struct device_node *node = pdev->dev.of_node;
        const struct palmas_clks_of_match_data *match_data;
-       const struct of_device_id *match;
        struct palmas_clock_info *cinfo;
        struct clk *clk;
        int ret;
 
-       match = of_match_device(palmas_clks_of_match, &pdev->dev);
-       match_data = match->data;
+       match_data = of_device_get_match_data(&pdev->dev);
+       if (!match_data)
+               return 1;
 
        cinfo = devm_kzalloc(&pdev->dev, sizeof(*cinfo), GFP_KERNEL);
        if (!cinfo)