]> git.baikalelectronics.ru Git - kernel.git/commit
x86, mce, AMD: Fix leaving freed data in a list
authorJulia Lawall <julia@diku.dk>
Fri, 13 May 2011 13:52:09 +0000 (15:52 +0200)
committerIngo Molnar <mingo@elte.hu>
Fri, 13 May 2011 15:11:02 +0000 (17:11 +0200)
commitd04faf9bbadef9da874fcfe6a1e74882fe9374ad
treecceb99495c7e2fb07a24d743fc864e049ca96560
parent2049b2a36551dc61878b4084afc3280788d2abee
x86, mce, AMD: Fix leaving freed data in a list

b may be added to a list, but is not removed before being freed
in the case of an error.  This is done in the corresponding
deallocation function, so the code here has been changed to
follow that.

The sematic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@
expression E,E1,E2;
identifier l;
@@

*list_add(&E->l,E1);
... when != E1
    when != list_del(&E->l)
    when != list_del_init(&E->l)
    when != E = E2
*kfree(E);// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Cc: Borislav Petkov <borislav.petkov@amd.com>
Cc: Robert Richter <robert.richter@amd.com>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Andreas Herrmann <andreas.herrmann3@amd.com>
Cc: <stable@kernel.org>
Link: http://lkml.kernel.org/r/1305294731-12127-1-git-send-email-julia@diku.dk
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/cpu/mcheck/mce_amd.c