From: Masami Hiramatsu (Google) Date: Thu, 7 Nov 2024 14:52:22 +0000 (+0900) Subject: perf probe: Fix to ignore escaped characters in --lines option X-Git-Tag: microblaze-v6.16~532^2~26 X-Git-Url: http://git.monstr.eu/?a=commitdiff_plain;h=47fa0f99a9aa962bac8e6da09cb104e8da94e4df;p=linux-2.6-microblaze.git perf probe: Fix to ignore escaped characters in --lines option Use strbprk_esc() and strdup_esc() to ignore escaped characters in --lines option. This has been done for other options, but only --lines option doesn't. Signed-off-by: Masami Hiramatsu Cc: Alexander Lobakin Cc: Dima Kogan Cc: Ian Rogers Cc: Ingo Molnar Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Przemek Kitszel Link: https://lore.kernel.org/r/173099114272.2431889.4820591557298941207.stgit@mhiramat.roam.corp.google.com Signed-off-by: Arnaldo Carvalho de Melo --- diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index 9e94d66d6333..b9119391d373 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c @@ -1372,7 +1372,7 @@ int parse_line_range_desc(const char *arg, struct line_range *lr) lr->start = 0; lr->end = INT_MAX; - range = strchr(name, ':'); + range = strpbrk_esc(name, ":"); if (range) { *range++ = '\0'; @@ -1413,7 +1413,7 @@ int parse_line_range_desc(const char *arg, struct line_range *lr) } } - file = strchr(name, '@'); + file = strpbrk_esc(name, "@"); if (file) { *file = '\0'; lr->file = strdup(++file); @@ -1422,7 +1422,7 @@ int parse_line_range_desc(const char *arg, struct line_range *lr) goto err; } lr->function = name; - } else if (strchr(name, '/') || strchr(name, '.')) + } else if (strpbrk_esc(name, "/.")) lr->file = name; else if (is_c_func_name(name))/* We reuse it for checking funcname */ lr->function = name;