[PATCH 1/2] perf tools: Fix segfault when using srcline sort key

From: Namhyung Kim
Date: Sun Oct 14 2012 - 23:40:07 EST


From: Namhyung Kim <namhyung.kim@xxxxxxx>

The srcline sort key is for grouping samples based on their source
file and line number. It use addr2line tool to get the information
but it requires dso name. It caused a segfault when a sample does not
have the name by dereferencing a NULL pointer. Fix it by using raw ip
addresses for those samples.

Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
---
tools/perf/util/sort.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index b5b1b9211960..dd68f115d392 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -260,6 +260,9 @@ static int hist_entry__srcline_snprintf(struct hist_entry *self, char *bf,
if (path != NULL)
goto out_path;

+ if (!self->ms.map)
+ goto out_ip;
+
snprintf(cmd, sizeof(cmd), "addr2line -e %s %016" PRIx64,
self->ms.map->dso->long_name, self->ip);
fp = popen(cmd, "r");
--
1.7.11.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/