]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
can: d_can: fix use after free bug in d_can_plat_remove()
authorLothar Waßmann <LW@KARO-electronics.de>
Wed, 26 Jun 2013 13:25:46 +0000 (15:25 +0200)
committerLothar Waßmann <LW@KARO-electronics.de>
Wed, 26 Jun 2013 13:25:46 +0000 (15:25 +0200)
drivers/net/can/d_can/d_can_platform.c

index 7b8a62c86edb41f7f999c5949e886f4ea5f7f1e9..5b76ae35bb806fa6ef7970c8162004e713e1c791 100644 (file)
@@ -176,6 +176,7 @@ static int __devexit d_can_plat_remove(struct platform_device *pdev)
        struct net_device *ndev = platform_get_drvdata(pdev);
        struct d_can_priv *priv = netdev_priv(ndev);
        struct resource *mem;
+       void __iomem *base = priv->base;
 
        /* De-initialize DCAN RAM */
        d_can_reset_ram(priv, pdev->id, 0);
@@ -184,7 +185,7 @@ static int __devexit d_can_plat_remove(struct platform_device *pdev)
        platform_set_drvdata(pdev, NULL);
 
        free_d_can_dev(ndev);
-       iounmap(priv->base);
+       iounmap(base);
 
        mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        release_mem_region(mem->start, resource_size(mem));