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
1 changed files with 3 additions and 6 deletions
|
@ -687,12 +687,9 @@ static int __devexit wf_smu_remove(struct platform_device *ddev)
|
|||
wf_put_control(cpufreq_clamp);
|
||||
|
||||
/* Destroy control loops state structures */
|
||||
if (wf_smu_slots_fans)
|
||||
kfree(wf_smu_cpu_fans);
|
||||
if (wf_smu_drive_fans)
|
||||
kfree(wf_smu_cpu_fans);
|
||||
if (wf_smu_cpu_fans)
|
||||
kfree(wf_smu_cpu_fans);
|
||||
kfree(wf_smu_slots_fans);
|
||||
kfree(wf_smu_drive_fans);
|
||||
kfree(wf_smu_cpu_fans);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue