mirror of
https://github.com/torvalds/linux.git
synced 2024-12-31 23:31:29 +00:00
powerpc/pmac/windfarm: Correct potential double free
The conditionals were testing different values, but then all freeing the same one, which could result in a double free. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression x,e; identifier f; iterator I; statement S; @@ *kfree(x); ... when != &x when != x = e when != I(x,...) S *x // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
637a99022f
commit
ab30f78c0a
@ -687,12 +687,9 @@ static int __devexit wf_smu_remove(struct platform_device *ddev)
|
|||||||
wf_put_control(cpufreq_clamp);
|
wf_put_control(cpufreq_clamp);
|
||||||
|
|
||||||
/* Destroy control loops state structures */
|
/* Destroy control loops state structures */
|
||||||
if (wf_smu_slots_fans)
|
kfree(wf_smu_slots_fans);
|
||||||
kfree(wf_smu_cpu_fans);
|
kfree(wf_smu_drive_fans);
|
||||||
if (wf_smu_drive_fans)
|
kfree(wf_smu_cpu_fans);
|
||||||
kfree(wf_smu_cpu_fans);
|
|
||||||
if (wf_smu_cpu_fans)
|
|
||||||
kfree(wf_smu_cpu_fans);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user