lkml.org 
[lkml]   [2012]   [Apr]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/core] perf hists browser: Fix NULL deref in hists browsing code
    Commit-ID:  8493fe1daf15324eb13a4cc2f94e258716daa568
    Gitweb: http://git.kernel.org/tip/8493fe1daf15324eb13a4cc2f94e258716daa568
    Author: Jiri Olsa <jolsa@redhat.com>
    AuthorDate: Wed, 4 Apr 2012 22:21:31 +0200
    Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
    CommitDate: Thu, 5 Apr 2012 18:58:45 -0300

    perf hists browser: Fix NULL deref in hists browsing code

    If there's an event with no samples in data file, the perf report
    command can segfault after entering the event details menu.

    Following steps reproduce the issue:

    # ./perf record -e syscalls:sys_enter_kexec_load,syscalls:sys_enter_mmap ls
    # ./perf report
    # enter '0 syscalls:sys_enter_kexec_load' menu
    # pres ENTER twice

    Above steps are valid assuming ls wont run kexec.. ;)

    The check for sellection to be NULL is missing. The fix makes sure it's
    being check. Above steps now endup with menu being displayed allowing
    'Exit' as the only option.

    Signed-off-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/1333570898-10505-2-git-send-email-jolsa@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/ui/browsers/hists.c | 3 +++
    1 files changed, 3 insertions(+), 0 deletions(-)

    diff --git a/tools/perf/util/ui/browsers/hists.c b/tools/perf/util/ui/browsers/hists.c
    index d7a1c4a..2f83e5d 100644
    --- a/tools/perf/util/ui/browsers/hists.c
    +++ b/tools/perf/util/ui/browsers/hists.c
    @@ -125,6 +125,9 @@ static int callchain__count_rows(struct rb_root *chain)

    static bool map_symbol__toggle_fold(struct map_symbol *self)
    {
    + if (!self)
    + return false;
    +
    if (!self->has_children)
    return false;


    \
     
     \ /
      Last update: 2012-04-13 20:07    [W:0.023 / U:0.752 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site