diff options
author | Samuel Liao <samuelliao@tencent.com> | 2012-06-05 01:14:59 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-06-19 13:30:26 -0400 |
commit | c0a58fb2bdf033df433cad9009c7dac4c6b872b0 (patch) | |
tree | d4c65704aae722151a0d85cca74d1e30577c99e4 /tools | |
parent | dd4f52232c60bcb41205a67d2df2ac0ecdfe3683 (diff) |
perf annotate: Check null of sym pointer before using it
Sym may be NULL, and that will cause perf to crash.
Signed-off-by: Shan Wei <davidshan@tencent.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/4FCD95D3.90209@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/ui/browsers/annotate.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/perf/ui/browsers/annotate.c b/tools/perf/ui/browsers/annotate.c index 34b1c46eaf42..67a2703e666a 100644 --- a/tools/perf/ui/browsers/annotate.c +++ b/tools/perf/ui/browsers/annotate.c | |||
@@ -814,7 +814,7 @@ int symbol__tui_annotate(struct symbol *sym, struct map *map, int evidx, | |||
814 | { | 814 | { |
815 | struct disasm_line *pos, *n; | 815 | struct disasm_line *pos, *n; |
816 | struct annotation *notes; | 816 | struct annotation *notes; |
817 | const size_t size = symbol__size(sym); | 817 | size_t size; |
818 | struct map_symbol ms = { | 818 | struct map_symbol ms = { |
819 | .map = map, | 819 | .map = map, |
820 | .sym = sym, | 820 | .sym = sym, |
@@ -834,6 +834,8 @@ int symbol__tui_annotate(struct symbol *sym, struct map *map, int evidx, | |||
834 | if (sym == NULL) | 834 | if (sym == NULL) |
835 | return -1; | 835 | return -1; |
836 | 836 | ||
837 | size = symbol__size(sym); | ||
838 | |||
837 | if (map->dso->annotate_warned) | 839 | if (map->dso->annotate_warned) |
838 | return -1; | 840 | return -1; |
839 | 841 | ||