tools lib symbol: Skip non-address kallsyms line
authorJiri Olsa <jolsa@kernel.org>
Thu, 15 Feb 2018 12:26:27 +0000 (13:26 +0100)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 16 Feb 2018 17:25:56 +0000 (14:25 -0300)
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@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20180215122635.24029-2-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/lib/symbol/kallsyms.c

index 914cb8e3d40b7e1be5717b385e9f92a33d19aed1..689b6a130dd7589a428c3f9632b139ac77b0bf27 100644 (file)
@@ -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;