When trying to read buildid from file in function tools/perf/util/symbol.c:dso_load(), perf used wrong filename to test. The variable 'name' has just allocated and uninitialized before this sentence.Obviously, the test 'is_regular_file()' is for the latter 'filename__read_build_id()', so the right filename ought to be 'dso->long_name'.
Signed-off-by: Song Shan Gong <[email protected]> Reviewed-by: Christian Borntraeger <[email protected]> --- tools/perf/util/symbol.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 54c4ff2..7044742 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -1430,7 +1430,7 @@ int dso__load(struct dso *dso, struct map *map, symbol_filter_t filter) * Read the build id if possible. This is required for * DSO_BINARY_TYPE__BUILDID_DEBUGINFO to work */ - if (is_regular_file(name) && + if (is_regular_file(dso->long_name) && filename__read_build_id(dso->long_name, build_id, BUILD_ID_SIZE) > 0) dso__set_build_id(dso, build_id); -- 2.3.0

