linux/tools/perf/util
Jiri Olsa 8493fe1daf 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>
2012-04-05 18:58:45 -03:00
..
gtk perf report: Add a simple GTK2-based 'perf report' browser 2012-03-19 15:13:29 -03:00
include perf tools: Switch module.h into export.h 2012-03-26 17:19:57 +02:00
scripting-engines perf tools: Remove unnecessary ctype.h inclusion 2012-01-30 18:37:35 -02:00
ui perf hists browser: Fix NULL deref in hists browsing code 2012-04-05 18:58:45 -03:00
PERF-VERSION-GEN perf: clear out make flags when calling kernel make kernelver 2011-06-15 22:12:55 +02:00
abspath.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
alias.c perf_counter tools: Add more warnings and fix/annotate them 2009-07-01 12:49:48 +02:00
annotate.c perf annotate: Fix hist decay 2012-04-05 18:49:18 -03:00
annotate.h perf symbols: Add nr_events to symbol_conf 2011-11-28 10:37:11 -02:00
bitmap.c perf tools: Add bitmap_or function into bitmap object 2012-02-13 23:28:10 -02:00
build-id.c perf tools: Rename perf_event_ops to perf_tool 2011-11-28 10:39:28 -02:00
build-id.h perf tools: Rename perf_event_ops to perf_tool 2011-11-28 10:39:28 -02:00
cache.h perf report: Add a simple GTK2-based 'perf report' browser 2012-03-19 15:13:29 -03:00
callchain.c perf tools: Kill event_t typedef, use 'union perf_event' instead 2011-01-29 16:25:37 -02:00
callchain.h perf tools: Pass tool context in the the perf_event_ops functions 2011-11-28 10:38:56 -02:00
cgroup.c perf tools: Eliminate duplicate code and use PATH_MAX consistently 2011-11-28 10:11:04 -02:00
cgroup.h perf tool: Add cgroup support 2011-02-16 13:30:48 +01:00
color.c perf tools: Use scnprintf where applicable 2012-03-14 12:36:19 -03:00
color.h perf hist: Replace ->print() routines by ->snprintf() equivalents 2010-04-02 16:28:15 -03:00
config.c perf tools: Remove stale git headlines from top comment 2011-12-20 13:43:36 -02:00
cpumap.c perf tools: Add fprintf methods for thread_map and cpu_map classes 2012-01-24 19:46:48 -02:00
cpumap.h perf tools: Add fprintf methods for thread_map and cpu_map classes 2012-01-24 19:46:48 -02:00
ctype.c perf tools: ctype.c only wants util.h 2012-02-13 23:17:40 -02:00
debug.c perf ui browser: Handle K_RESIZE in dialog windows 2011-10-26 13:15:07 -02:00
debug.h perf ui browser: Handle K_RESIZE in dialog windows 2011-10-26 13:15:07 -02:00
debugfs.c perf tools: Remove unused functions from debugfs object 2012-02-13 23:25:38 -02:00
debugfs.h perf tools: Remove unused functions from debugfs object 2012-02-13 23:25:38 -02:00
dwarf-aux.c perf probe: Filter out redundant inline-instances 2011-08-12 09:34:35 -03:00
dwarf-aux.h perf probe: Search concrete out-of-line instances 2011-08-12 09:32:10 -03:00
environment.c
event.c perf tools: Ensure comm string is properly terminated 2012-02-29 18:29:45 -03:00
event.h perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK 2012-03-09 08:26:04 +01:00
evlist.c perf tools: Do not disable members of group event 2012-03-16 16:29:33 -03:00
evlist.h perf tools: Allow multiple threads or processes in record, stat, top 2012-02-13 22:54:11 -02:00
evsel.c perf tools: Fix bug in raw sample parsing 2012-03-26 15:36:03 -03:00
evsel.h perf diff: Fix to work with new hists design 2012-03-22 15:12:09 -03:00
exec_cmd.c perf tools: Makefile: Remove various and sundry cruft 2011-02-18 07:43:06 -02:00
exec_cmd.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
generate-cmdlist.sh
header.c perf tools: Fix various casting issues for 32 bits 2012-03-22 15:11:18 -03:00
header.h perf record: Add HEADER_BRANCH_STACK tag 2012-03-09 08:26:08 +01:00
help.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
help.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
hist.c perf hists: Catch and handle out-of-date hist entry maps. 2012-04-05 18:53:47 -03:00
hist.h perf report: Add a simple GTK2-based 'perf report' browser 2012-03-19 15:13:29 -03:00
hweight.c perf tools: Don't use code surrounded by __KERNEL__ 2010-05-02 12:00:44 -03:00
levenshtein.c
levenshtein.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
map.c perf script: Add option resolving vmlinux path 2012-01-30 18:13:07 -02:00
map.h perf script: Unify the expressions indicating "unknown" 2012-01-30 17:57:57 -02:00
pager.c perf_counter tools: Remove dead code 2009-06-27 06:06:39 +02:00
parse-events.c perf tools: Fix modifier to be applied on correct events 2012-03-22 15:11:38 -03:00
parse-events.h perf tools: Fix modifier to be applied on correct events 2012-03-22 15:11:38 -03:00
parse-events.l perf tools: Add missing ref-cycles event back to event parser 2012-03-29 11:05:50 -03:00
parse-events.y perf tools: Fix modifier to be applied on correct events 2012-03-22 15:11:38 -03:00
parse-options.c perf options: Type check all the remaining OPT_ variants 2010-05-17 16:22:41 -03:00
parse-options.h perf options: add OPT_CALLBACK_DEFAULT_NOOPT 2010-12-06 15:33:29 -02:00
path.c perf tools: add test for strlcpy() 2010-08-21 11:22:47 -03:00
pmu.c perf tools: Add perf pmu object to access pmu format definition 2012-03-16 14:29:35 -03:00
pmu.h perf tools: Add perf pmu object to access pmu format definition 2012-03-16 14:29:35 -03:00
pmu.l perf tools: Add perf pmu object to access pmu format definition 2012-03-16 14:29:35 -03:00
pmu.y perf tools: Add perf pmu object to access pmu format definition 2012-03-16 14:29:35 -03:00
probe-event.c Merge branch 'perf/urgent' into perf/core 2012-03-05 09:20:08 +01:00
probe-event.h perf probe: Add probed module in front of function 2011-07-15 16:19:08 -04:00
probe-finder.c perf probe: Finder fails to resolve function name to address 2012-03-28 11:56:49 -03:00
probe-finder.h perf tools: Eliminate duplicate code and use PATH_MAX consistently 2011-11-28 10:11:04 -02:00
pstack.c perf newt: Make <- zoom out filters 2010-05-14 20:05:21 -03:00
pstack.h perf ui: Move hists browser to util/ui/browsers/ 2010-08-10 16:11:08 -03:00
python-ext-sources perf tools: Allow multiple threads or processes in record, stat, top 2012-02-13 22:54:11 -02:00
python.c perf tools: Introduce per user view 2012-01-24 19:47:37 -02:00
quote.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
quote.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
run-command.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
run-command.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
session.c perf diff: Fix to work with new hists design 2012-03-22 15:12:09 -03:00
session.h perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK 2012-03-09 08:26:04 +01:00
setup.py perf tools: Fix build dependency of perf python extension 2012-02-13 18:01:25 -02:00
sigchain.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
sigchain.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
sort.c Merge branch 'perf/urgent' into perf/core 2012-03-22 15:09:08 -03:00
sort.h perf report: Enable TUI in branch view mode 2012-03-09 08:26:08 +01:00
strbuf.c perf tools: Use scnprintf where applicable 2012-03-14 12:36:19 -03:00
strbuf.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
strfilter.c perf: Fix missing strndup declaration 2011-03-04 01:17:18 +01:00
strfilter.h perf tools: Add strfilter for general purpose string filter 2011-01-28 09:19:38 -02:00
string.c perf probe: Move strtailcmp to string.c 2011-07-15 16:00:47 -04:00
strlist.c perf probe: Fix --del to update current event list 2009-12-15 20:22:01 +01:00
strlist.h perf tools: Add for_each macros for strlist 2009-12-15 20:22:02 +01:00
svghelper.c perf timechart: Fix black idle boxes in the title 2011-02-28 08:56:14 +01:00
svghelper.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
symbol.c perf symbols: Handle NULL dso in dso__name_len 2012-03-27 11:00:58 -03:00
symbol.h perf report: Enable TUI in branch view mode 2012-03-09 08:26:08 +01:00
sysfs.c perf tools: Add sysfs mountpoint interface 2012-02-13 23:27:15 -02:00
sysfs.h perf tools: Add sysfs mountpoint interface 2012-02-13 23:27:15 -02:00
thread.c perf session: Move threads to struct machine 2011-11-28 10:35:31 -02:00
thread.h perf tools: Resolve machine earlier and pass it to perf_event_ops 2011-11-28 10:39:12 -02:00
thread_map.c perf tools: fix broken perf record -a mode 2012-02-21 15:05:43 -02:00
thread_map.h perf tools: Allow multiple threads or processes in record, stat, top 2012-02-13 22:54:11 -02:00
tool.h perf tools: Save some loops using perf_evlist__id2evsel 2011-11-28 17:57:40 -02:00
top.c perf tools: Allow multiple threads or processes in record, stat, top 2012-02-13 22:54:11 -02:00
top.h perf tools: Handle kernels that don't support attr.exclude_{guest,host} 2012-03-03 12:19:56 -03:00
trace-event-info.c perf tools: Fix compile error on x86_64 Ubuntu 2012-01-08 13:34:55 -02:00
trace-event-parse.c perf tools: Simplify event_read_id exit path 2012-03-22 15:10:42 -03:00
trace-event-read.c perf tools: Remove unnecessary ctype.h inclusion 2012-01-30 18:37:35 -02:00
trace-event-scripting.c perf tools: Remove unnecessary ctype.h inclusion 2012-01-30 18:37:35 -02:00
trace-event.h perf tools: Resolve machine earlier and pass it to perf_event_ops 2011-11-28 10:39:12 -02:00
types.h perf tools: Fix 64 bit integer format strings 2011-01-22 23:41:57 -02:00
usage.c perf tools: Allow multiple threads or processes in record, stat, top 2012-02-13 22:54:11 -02:00
util.c perf tools: Change perf_guest default back to false 2012-03-03 12:13:41 -03:00
util.h perf tools: Implement islower/isupper macro into util.h 2012-02-13 23:15:43 -02:00
values.c perf tools: Fix a memory leak on perf_read_values_destroy 2011-12-20 13:41:34 -02:00
values.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
wrapper.c perf tools: remove xstrndup, xmalloc, xzalloc 2010-05-18 23:05:28 -03:00
xyarray.c perf tools: Introduce event selectors 2011-01-03 16:39:04 -02:00
xyarray.h perf tools: Introduce event selectors 2011-01-03 16:39:04 -02:00