[tip:perf/core] tools lib symbol: Skip non-address kallsyms line

From: tip-bot for Jiri Olsa
Date: Sat Feb 17 2018 - 06:36:07 EST


Commit-ID: c53b4bb02b45ceec7a590e47820afbb5cef0bb81
Gitweb: https://git.kernel.org/tip/c53b4bb02b45ceec7a590e47820afbb5cef0bb81
Author: Jiri Olsa <jolsa@xxxxxxxxxx>
AuthorDate: Thu, 15 Feb 2018 13:26:27 +0100
Committer: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
CommitDate: Fri, 16 Feb 2018 14:25:56 -0300

tools lib symbol: Skip non-address kallsyms line

Adding check on failed attempt to parse the address and skip the line
parsing early in that case.

The address can be replaced with '(null)' string in case user don't have
enough permissions, like:

$ cat /proc/kallsyms
(null) A irq_stack_union
(null) A __per_cpu_start
...

Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/20180215122635.24029-2-jolsa@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
---
tools/lib/symbol/kallsyms.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/tools/lib/symbol/kallsyms.c b/tools/lib/symbol/kallsyms.c
index 914cb8e..689b6a1 100644
--- a/tools/lib/symbol/kallsyms.c
+++ b/tools/lib/symbol/kallsyms.c
@@ -38,6 +38,10 @@ int kallsyms__parse(const char *filename, void *arg,

len = hex2u64(line, &start);

+ /* Skip the line if we failed to parse the address. */
+ if (!len)
+ continue;
+
len++;
if (len + 2 >= line_len)
continue;