lkml.org 
[lkml]   [2011]   [May]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[22/24] x86, mce, AMD: Fix leaving freed data in a list
    2.6.33-longterm review patch.  If anyone has any objections, please let us know.

    ------------------
    Content-Length: 1265
    Lines: 49

    From: Julia Lawall <julia@diku.dk>

    commit d9a5ac9ef306eb5cc874f285185a15c303c50009 upstream.

    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>
    Link: http://lkml.kernel.org/r/1305294731-12127-1-git-send-email-julia@diku.dk
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    arch/x86/kernel/cpu/mcheck/mce_amd.c | 1 +
    1 file changed, 1 insertion(+)

    --- a/arch/x86/kernel/cpu/mcheck/mce_amd.c
    +++ b/arch/x86/kernel/cpu/mcheck/mce_amd.c
    @@ -468,6 +468,7 @@ recurse:
    out_free:
    if (b) {
    kobject_put(&b->kobj);
    + list_del(&b->miscj);
    kfree(b);
    }
    return err;



    \
     
     \ /
      Last update: 2011-05-19 20:35    [W:0.021 / U:13.152 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site