Messages in this thread | | | Date | Fri, 26 Jan 2018 15:36:35 +0900 | From | Namhyung Kim <> | Subject | Re: [PATCH 1/2] tools lib symbol: Use strtoul instead of hex2u64 in kallsyms__parse |
| |
On Fri, Jan 19, 2018 at 05:11:02PM +0100, Jiri Olsa wrote: > Current kallsyms__parse uses hex2u64, which gives > no indication of error. Using strtoul to checkup > on failed attempt to parse the number and stop the > rest of the kallsyms__parse processing early. > > Link: http://lkml.kernel.org/n/tip-djqwni3p6lgctf6o7xhhwpmw@git.kernel.org > Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Thanks, Namhyung
> --- > tools/lib/symbol/kallsyms.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/tools/lib/symbol/kallsyms.c b/tools/lib/symbol/kallsyms.c > index 914cb8e3d40b..dd5bb1dfd2b6 100644 > --- a/tools/lib/symbol/kallsyms.c > +++ b/tools/lib/symbol/kallsyms.c > @@ -29,6 +29,7 @@ int kallsyms__parse(const char *filename, void *arg, > int line_len, len; > char symbol_type; > char *symbol_name; > + char *endptr; > > line_len = getline(&line, &n, file); > if (line_len < 0 || !line) > @@ -36,9 +37,12 @@ int kallsyms__parse(const char *filename, void *arg, > > line[--line_len] = '\0'; /* \n */ > > - len = hex2u64(line, &start); > + start = strtoul(line, &endptr, 16); > + if (line == endptr) > + continue; > + > + len = endptr - line + 1; > > - len++; > if (len + 2 >= line_len) > continue; > > -- > 2.13.6 >
| |