diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c index 48c4b963e809..f86b3b7df742 100644 --- a/tools/perf/util/machine.c +++ b/tools/perf/util/machine.c @@ -1269,9 +1269,14 @@ int machines__create_guest_kernel_maps(struct machines *machines) free(namelist[i]); continue; } - snprintf(path, sizeof(path), "%s/%s/proc/kallsyms", - symbol_conf.guestmount, - namelist[i]->d_name); + if (snprintf(path, sizeof(path), "%s/%s/proc/kallsyms", + symbol_conf.guestmount, + namelist[i]->d_name) >= (int)sizeof(path)) { + pr_debug("Guest kallsyms path too long for %s. Skipping.\n", + namelist[i]->d_name); + free(namelist[i]); + continue; + } if (access(path, R_OK)) { pr_debug("Can't access file %s\n", path); free(namelist[i]);