Commit 8493fe1daf15324eb13a4cc2f94e258716daa568

Authored by Jiri Olsa
Committed by Arnaldo Carvalho de Melo
1 parent 63fa471dd4

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>

Showing 1 changed file with 3 additions and 0 deletions Side-by-side Diff

tools/perf/util/ui/browsers/hists.c
... ... @@ -125,6 +125,9 @@
125 125  
126 126 static bool map_symbol__toggle_fold(struct map_symbol *self)
127 127 {
  128 + if (!self)
  129 + return false;
  130 +
128 131 if (!self->has_children)
129 132 return false;
130 133