Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 759a6c76 authored by Marc Kleine-Budde's avatar Marc Kleine-Budde Committed by David S. Miller
Browse files

can: at91_can: fix use after free of priv



The priv is part of the memory allocated by alloc_candev().
This patch moved the free it after last usage of priv.

While there convert all free_netdev() to free_candev() (which is currently
just a wrapper around free_netdev()) to be symetrically with the allocation
via alloc_candev().

Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8a0e0a49
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1101,7 +1101,7 @@ static int __init at91_can_probe(struct platform_device *pdev)
	return 0;

 exit_free:
	free_netdev(dev);
	free_candev(dev);
 exit_iounmap:
	iounmap(addr);
 exit_release:
@@ -1122,8 +1122,6 @@ static int __devexit at91_can_remove(struct platform_device *pdev)

	platform_set_drvdata(pdev, NULL);

	free_netdev(dev);

	iounmap(priv->reg_base);

	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -1131,6 +1129,8 @@ static int __devexit at91_can_remove(struct platform_device *pdev)

	clk_put(priv->clk);

	free_candev(dev);

	return 0;
}