perf evsel: Make perf_evsel__name() accept a NULL argument
In which case it simply returns "unknown", like when it can't figure out the evsel->name value. This makes this code more robust and fixes a problem in 'perf trace' where a NULL evsel was being passed to a routine that only used the evsel for printing its name when a invalid syscall id was passed. Reported-by: Leo Yan <leo.yan@linaro.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Link: https://lkml.kernel.org/n/tip-f30ztaasku3z935cn3ak3h53@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Родитель
016f327ce4
Коммит
fdbdd7e858
|
@ -589,6 +589,9 @@ const char *perf_evsel__name(struct perf_evsel *evsel)
|
|||
{
|
||||
char bf[128];
|
||||
|
||||
if (!evsel)
|
||||
goto out_unknown;
|
||||
|
||||
if (evsel->name)
|
||||
return evsel->name;
|
||||
|
||||
|
@ -628,7 +631,10 @@ const char *perf_evsel__name(struct perf_evsel *evsel)
|
|||
|
||||
evsel->name = strdup(bf);
|
||||
|
||||
return evsel->name ?: "unknown";
|
||||
if (evsel->name)
|
||||
return evsel->name;
|
||||
out_unknown:
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
const char *perf_evsel__group_name(struct perf_evsel *evsel)
|
||||
|
|
Загрузка…
Ссылка в новой задаче