diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2010-12-07 07:48:42 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2010-12-09 08:15:07 -0500 |
commit | 3835bc00c5b2d8e337a6e9d7b44f47e02760dba3 (patch) | |
tree | c93ec68b81e3c44c0d6e42d9e2bdeebf38657205 /tools/perf/util/hist.c | |
parent | b226a5a72901bc9c73d639ea2e53e6c304bf3b74 (diff) |
perf event: Prevent unbound event__name array access
event__name[] is missing an entry for PERF_RECORD_FINISHED_ROUND, but we
happily access the array from the dump code.
Make event__name[] static and provide an accessor function, fix up all
callers and add the missing string.
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ian Munsie <imunsie@au1.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <peterz@infradead.org>
LKML-Reference: <20101207124550.432593943@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/hist.c')
-rw-r--r-- | tools/perf/util/hist.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c index 2022e8740994..a3b84160c42e 100644 --- a/tools/perf/util/hist.c +++ b/tools/perf/util/hist.c | |||
@@ -1168,10 +1168,13 @@ size_t hists__fprintf_nr_events(struct hists *self, FILE *fp) | |||
1168 | size_t ret = 0; | 1168 | size_t ret = 0; |
1169 | 1169 | ||
1170 | for (i = 0; i < PERF_RECORD_HEADER_MAX; ++i) { | 1170 | for (i = 0; i < PERF_RECORD_HEADER_MAX; ++i) { |
1171 | if (!event__name[i]) | 1171 | const char *name = event__get_event_name(i); |
1172 | |||
1173 | if (!strcmp(name, "UNKNOWN")) | ||
1172 | continue; | 1174 | continue; |
1173 | ret += fprintf(fp, "%10s events: %10d\n", | 1175 | |
1174 | event__name[i], self->stats.nr_events[i]); | 1176 | ret += fprintf(fp, "%16s events: %10d\n", name, |
1177 | self->stats.nr_events[i]); | ||
1175 | } | 1178 | } |
1176 | 1179 | ||
1177 | return ret; | 1180 | return ret; |