linux/tools/lib/api/fs
Arnaldo Carvalho de Melo 919c9c7933 tools lib api: Fix mount_overload() snprintf truncation and toupper range
[ Upstream commit fd1f70776a ]

mount_overload() builds an environment variable name like
"PERF_SYSFS_ENVIRONMENT" from fs->name.  Two bugs:

1) snprintf() uses name_len as the buffer size instead of sizeof(upper_name).
   For fs->name = "sysfs" (len=5), the output is truncated to "PERF" (4
   chars + null), so getenv() never finds the intended variable.

2) mem_toupper() only uppercases name_len bytes, converting just the "PERF"
   prefix rather than the full string including the filesystem name portion.

Fix by using sizeof(upper_name) for snprintf and strlen(upper_name) for
mem_toupper, so the full "PERF_SYSFS_ENVIRONMENT" string is correctly
formatted and uppercased.

Reported-by: sashiko-bot <sashiko-bot@kernel.org>
Fixes: 73ca85ad36 ("tools lib api fs: Add FSTYPE__mount() method")
Cc: Jiri Olsa <jolsa@kernel.org>
Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2026-07-24 15:51:38 +02:00
..
Build tools lib api fs: Move cgroupsfs_find_mountpoint() 2020-03-04 10:34:09 -03:00
cgroup.c tools api fs: Cache cgroupfs mount point 2021-02-17 15:09:08 -03:00
fs.c tools lib api: Fix mount_overload() snprintf truncation and toupper range 2026-07-24 15:51:38 +02:00
fs.h tools api fs: Make xxx__mountpoint() more scalable 2020-04-16 12:19:12 -03:00
tracing_path.c perf tools: Fix tracing_path_mount proper path 2018-10-16 12:27:46 -03:00
tracing_path.h tools lib api fs tracing_path: Make tracing_events_path private 2018-05-17 14:51:23 -03:00