lkml.org 
[lkml]   [2012]   [Jan]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[85/90] kprobes: initialize before using a hlist
    3.0-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Ananth N Mavinakayanahalli <ananth@in.ibm.com>

    commit d496aab567e7e52b3e974c9192a5de6e77dce32c upstream.

    Commit ef53d9c5e ("kprobes: improve kretprobe scalability with hashed
    locking") introduced a bug where we can potentially leak
    kretprobe_instances since we initialize a hlist head after having used
    it.

    Initialize the hlist head before using it.

    Reported by: Jim Keniston <jkenisto@us.ibm.com>
    Acked-by: Jim Keniston <jkenisto@us.ibm.com>
    Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
    Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Srinivasa D S <srinivasa@in.ibm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    kernel/kprobes.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/kernel/kprobes.c
    +++ b/kernel/kprobes.c
    @@ -1077,6 +1077,7 @@ void __kprobes kprobe_flush_task(struct
    /* Early boot. kretprobe_table_locks not yet initialized. */
    return;

    + INIT_HLIST_HEAD(&empty_rp);
    hash = hash_ptr(tk, KPROBE_HASH_BITS);
    head = &kretprobe_inst_table[hash];
    kretprobe_table_lock(hash, &flags);
    @@ -1085,7 +1086,6 @@ void __kprobes kprobe_flush_task(struct
    recycle_rp_inst(ri, &empty_rp);
    }
    kretprobe_table_unlock(hash, &flags);
    - INIT_HLIST_HEAD(&empty_rp);
    hlist_for_each_entry_safe(ri, node, tmp, &empty_rp, hlist) {
    hlist_del(&ri->hlist);
    kfree(ri);



    \
     
     \ /
      Last update: 2012-01-24 01:07    [W:0.021 / U:90.740 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site