Messages in this thread Patch in this message | | | Date | Thu, 9 Feb 2012 11:30:16 +0100 | From | Stephane Eranian <> | Subject | [PATCH] perf: add sanity check on addr in symbol__inc_addr_samples() |
| |
Check the value of addr against the bounds of the symbol. This is needed given we compute an offset: offset = addr - sym->start
And we don't want the offset to become negative.
Signed-off-by: Stephane Eranian <eranian@google.com>
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index 011ed26..8248d80 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c @@ -64,7 +64,7 @@ int symbol__inc_addr_samples(struct symbol *sym, struct map *map, pr_debug3("%s: addr=%#" PRIx64 "\n", __func__, map->unmap_ip(map, addr)); - if (addr >= sym->end) + if (addr >= sym->end || addr < sym->start) return 0; offset = addr - sym->start;
| |