dmaengine: img-mdc: fix a possible NULL dereference
authorLABBE Corentin <clabbe.montjoie@gmail.com>
Tue, 16 Aug 2016 08:44:18 +0000 (10:44 +0200)
committerVinod Koul <vinod.koul@intel.com>
Mon, 22 Aug 2016 06:27:49 +0000 (11:57 +0530)
of_match_device could return NULL, and so cause a NULL pointer
dereference later at line 850:
mdma->soc = match->data;

For fixing this problem, we use of_device_get_match_data(), this will
simplify the code a little by using a standard function for
getting the match data.

This was reported by coverity (CID 1324134)

Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/img-mdc-dma.c

index a4c53be482cf3ce6ba639c510911e2060f07c616..624f1e1e9c55b0eb872c2b39f8debb8e381adb9f 100644 (file)
@@ -861,7 +861,6 @@ static int mdc_dma_probe(struct platform_device *pdev)
 {
        struct mdc_dma *mdma;
        struct resource *res;
-       const struct of_device_id *match;
        unsigned int i;
        u32 val;
        int ret;
@@ -871,8 +870,7 @@ static int mdc_dma_probe(struct platform_device *pdev)
                return -ENOMEM;
        platform_set_drvdata(pdev, mdma);
 
-       match = of_match_device(mdc_dma_of_match, &pdev->dev);
-       mdma->soc = match->data;
+       mdma->soc = of_device_get_match_data(&pdev->dev);
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        mdma->regs = devm_ioremap_resource(&pdev->dev, res);