linux/tools/testing/selftests
Reinette Chatre 8b67529090 selftests/resctrl: Protect against array overflow when reading strings
[ Upstream commit 46058430fc ]

resctrl selftests discover system properties via a variety of sysfs files.
The MBM and MBA tests need to discover the event and umask with which to
configure the performance event used to measure read memory bandwidth.
This is done by parsing the contents of
/sys/bus/event_source/devices/uncore_imc_<imc instance>/events/cas_count_read
Similarly, the resctrl selftests discover the cache size via
/sys/bus/cpu/devices/cpu<id>/cache/index<index>/size.

Take care to do bounds checking when using fscanf() to read the
contents of files into a string buffer because by default fscanf() assumes
arbitrarily long strings. If the file contains more bytes than the array
can accommodate then an overflow will occur.

Provide a maximum field width to the conversion specifier to protect
against array overflow. The maximum is one less than the array size because
string input stores a terminating null byte that is not covered by the
maximum field width.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-12-14 20:03:41 +01:00
..
acct selftest: acct: Add selftest for the acct() syscall 2024-08-01 13:55:34 -06:00
alsa selftest: alsa: check if user has alsa installed 2024-09-30 09:47:34 +02:00
amd-pstate selftests/amd-pstate: Added option to provide perf binary path 2023-10-16 13:06:58 -06:00
arm64 kselftest/arm64: Don't leak pipe fds in pac.exec_sign_all() 2024-12-14 20:03:36 +01:00
bpf bpf: Ensure reg is PTR_TO_STACK in process_iter_arg 2024-12-14 20:03:16 +01:00
breakpoints selftests: breakpoints: use remaining time to check if suspend succeed 2024-10-02 14:37:30 -06:00
cachestat selftests: cachestat: Fix build warnings on ppc64 2024-05-29 12:24:44 -06:00
capabilities selftests/capabilities: fix warn_unused_result build warnings 2024-05-08 16:48:25 -06:00
cgroup ALong with the usual shower of singleton patches, notable patch series in 2024-09-21 07:29:05 -07:00
clone3 clone3: clone3_cap_checkpoint_restore: remove unused MAX_PID_NS_LEVEL macro 2024-09-30 11:39:56 -06:00
connector selftests: connector: Fix input argument error paths to skip 2023-07-31 20:11:42 -07:00
core selftests: core: add unshare_test to gitignore 2024-09-30 11:42:11 -06:00
cpu-hotplug selftests/cpu-hotplug: Add log info when test success 2022-10-05 11:05:18 -06:00
cpufreq kselftest: cpufreq: Add RTC wakeup alarm 2024-07-31 11:42:36 -06:00
damon selftests/damon: add _damon_sysfs.py to TEST_FILES 2024-12-14 20:03:27 +01:00
devices kselftest/devices/probe: Fix SyntaxWarning in regex strings for Python3 2024-10-02 14:30:58 -06:00
dma selftests/dma:remove unused variable 2024-07-11 11:23:55 -06:00
dmabuf-heaps kselftests: dmabuf-heaps: Ensure the driver name is null-terminated 2024-07-29 09:02:54 +02:00
drivers selftests: bonding: add ns multicast group testing 2024-11-14 11:16:28 +01:00
dt kselftest: dt: Ignore nodes that have ancestors disabled 2024-09-05 07:54:16 -05:00
efivarfs selftests/efivarfs: create-read: fix a resource leak 2023-10-18 14:33:44 -06:00
exec selftests: exec: update gitignore for load_address 2024-09-30 11:42:19 -06:00
fchmodat2 selftests/fchmodat2: fix clang build failure due to -static-libasan 2024-06-11 15:05:05 -06:00
filelock selftests: add OFD lock tests 2023-08-24 10:41:47 -04:00
filesystems Char/Misc and other driver changes for 6.12-rc1 2024-09-26 10:13:08 -07:00
firmware selftests: firmware: remove duplicate unneeded defines 2023-10-06 17:33:52 -06:00
fpu selftests/fpu: Add an FPU selftest 2020-06-29 10:02:23 +02:00
ftrace tracing/selftests: Add tracefs mount options test 2024-11-01 08:57:55 -04:00
futex selftests: centralize -D_GNU_SOURCE= to CFLAGS in lib.mk 2024-07-10 12:14:51 -07:00
gpio selftest: gpio: remove obsolete gpio-mockup test 2024-03-05 20:01:08 +01:00
hid selftests: hid: fix typo and exit code 2024-12-14 20:03:03 +01:00
ia64 .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
intel_pstate selftests/intel_pstate: check if cpupower is installed 2024-10-28 21:18:57 -06:00
iommu iommufd: Do not allow creating areas without READ or WRITE 2024-08-26 09:16:13 +02:00
ipc selftests/ipc: ksft_exit functions do not return 2024-05-06 13:57:20 -06:00
ir kselftests/ir : Improve readability of modprobe error message 2022-05-16 13:34:19 -06:00
kcmp selftests/kcmp: remove unused open mode 2024-05-11 15:51:43 -07:00
kexec selftests/kexec: fix build for ARCH=x86_64 2022-10-18 14:13:25 -06:00
kmod testing: use the copyleft-next-0.3.1 SPDX tag 2022-11-08 15:44:02 +01:00
kselftest selftests: support interpreted scripts with ksft_runner.sh 2024-09-09 17:38:02 -07:00
kvm KVM: selftests: use X86_MEMTYPE_WB instead of VMX_BASIC_MEM_TYPE_WB 2024-11-08 05:57:12 -05:00
landlock selftests/landlock: Test signal created by out-of-bound message 2024-09-16 23:50:54 +02:00
lib selftests: lib: remove strscpy test 2024-08-01 13:55:33 -06:00
livepatch selftests/livepatch: wait for atomic replace to occur 2024-08-26 14:52:25 +02:00
lkdtm lkdtm/bugs: add test for hung smp_call_function_single() 2024-06-17 11:17:31 -07:00
locking selftests: locking: return Kselftest Skip code for skipped tests 2018-05-30 15:29:06 -06:00
lsm lsm: add IPE lsm 2024-08-19 22:36:26 -04:00
media_tests selftests: media_tests: Add new subtest to video_device_test 2023-06-12 16:39:10 -06:00
membarrier selftests: membarrier: ksft_exit_pass() does not return 2024-05-06 13:57:20 -06:00
memfd selftests/memfd: fix spelling mistakes 2024-05-07 10:36:59 -07:00
memory-hotplug selftests/memory-hotplug: Remove the redundant warning information 2022-10-18 14:21:18 -06:00
mincore selftests/mincore: fix skip condition for check_huge_pages test 2023-07-13 12:51:13 -06:00
mm selftest: hugetlb_dio: fix test naming 2024-12-14 20:03:27 +01:00
mount selftests/mount: remove unneeded conversion to bool 2021-12-10 16:46:01 -07:00
mount_setattr selftests/mount_setattr: Fix failures on 64K PAGE_SIZE kernels 2024-12-05 14:02:28 +01:00
move_mount_set_group selftests/move_mount_set_group:Make tests build with old libc 2024-01-22 15:33:37 +01:00
mqueue selftests/mqueue: fix 5 warnings about signed/unsigned mismatches 2024-06-24 22:25:03 -07:00
nci NFC: nci: Extend virtual NCI deinit test 2022-11-21 10:49:58 +00:00
net selftests: netfilter: Fix missing return values in conntrack_dump_flush 2024-12-05 14:01:58 +01:00
nolibc selftests/nolibc: run-tests.sh: allow building through LLVM 2024-08-12 22:22:17 +02:00
nsfs tools/testing: Replace zero-length array with flexible-array 2020-05-08 09:42:14 -06:00
ntb NTB: ntb_test: Fix bug when counting remote files 2020-06-05 20:02:09 -04:00
openat2 selftests/openat2: fix clang build failures: -static-libasan, LOCAL_HDRS 2024-06-11 15:00:11 -06:00
perf_events selftests/perf_events: Test FASYNC with watermark wakeups 2024-04-14 22:26:33 +02:00
pid_namespace selftests: pid_namespace: Fix incorrect kernel headers search path 2023-02-13 09:09:45 -07:00
pidfd pidfs: add selftests for new namespace ioctls 2024-07-24 10:53:13 +02:00
power_supply selftests: power_supply: Make it POSIX-compliant 2024-05-06 13:57:20 -06:00
powerpc selftests/powerpc: Allow building without static libc 2024-09-09 16:35:04 +10:00
prctl selftests: prctl: Add prctl test for PR_GET_NAME 2023-11-30 16:30:05 -07:00
proc - In the series "treewide: Refactor heap related implementation", 2024-07-21 17:56:22 -07:00
pstore pstore/platform: Use backend name for console registration 2020-05-30 10:34:02 -07:00
ptp ptp: add testptp mask test 2023-10-15 20:07:52 +01:00
ptrace Update for entry and ptrace: 2023-04-25 11:05:04 -07:00
rcutorture Merge branches 'context_tracking.15.08.24a', 'csd.lock.15.08.24a', 'nocb.09.09.24a', 'rcutorture.14.08.24a', 'rcustall.09.09.24a', 'srcu.12.08.24a', 'rcu.tasks.14.08.24a', 'rcu_scaling_tests.15.08.24a', 'fixes.12.08.24a' and 'misc.11.08.24a' into next.09.09.24a 2024-09-09 00:09:47 +05:30
resctrl selftests/resctrl: Protect against array overflow when reading strings 2024-12-14 20:03:41 +01:00
ring-buffer selftests/ring-buffer: Handle meta-page bigger than the system 2024-09-11 12:25:12 -04:00
riscv riscv: selftests: Remove mmap hint address checks 2024-08-29 06:03:28 -07:00
rlimits kselftests: Add test to check for rlimit changes in different user namespaces 2021-04-30 14:14:03 -05:00
rseq selftests/rseq: Fix mm_cid test failure 2024-10-11 15:05:05 -06:00
rtc selftest: rtc: Check if could access /dev/rtc0 before testing 2024-09-30 11:32:07 -06:00
rust selftests: rust: config: disable GCC_PLUGINS 2024-08-11 17:32:55 -06:00
safesetid LSM: SafeSetID: add setgroups() testing to selftest 2022-07-15 18:24:42 +00:00
sched selftests/sched: fix code format issues 2024-07-11 11:23:53 -06:00
sched_ext sched_ext: Fix enq_last_no_enq_fails selftest 2024-10-25 12:20:29 -10:00
seccomp minmax: make generic MIN() and MAX() macros available everywhere 2024-07-28 15:49:18 -07:00
sgx selftests: centralize -D_GNU_SOURCE= to CFLAGS in lib.mk 2024-07-10 12:14:51 -07:00
sigaltstack selftests/sigaltstack: Fix ppc64 GCC build 2024-07-01 21:35:38 +10:00
size .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
sparc64 selftests/sparc64: remove ARRAY_SIZE define from adi-test 2021-12-10 17:51:15 -07:00
splice selftests: splice_read: Fix sysfs read cases 2022-11-29 17:28:31 -07:00
static_keys selftests: static_keys: fix test name in messages 2023-10-05 14:28:59 -06:00
sync selftests: sync: ksft_exit_pass() does not return 2024-05-06 13:57:21 -06:00
syscall_user_dispatch selftests: sud_test: return correct emulated syscall value on RISC-V 2024-04-25 09:46:41 -07:00
sysctl sysclt: Clarify the results of selftest run 2023-12-28 04:57:57 -08:00
tc-testing net: sched: u32: Add test case for systematic hnode IDR leaks 2024-11-14 11:39:17 +01:00
tdx selftests/tdx: add gitignore file 2023-10-05 14:22:53 -06:00
thermal/intel selftests: thermal: intel: workload_hint: add missing gitignore 2024-02-20 16:30:55 -07:00
timens selftest/timerns: fix clang build failures for abs() calls 2024-07-05 13:21:48 -06:00
timers selftests:timers: posix_timers: Fix warn_unused_result in __fatal_error() 2024-09-30 11:37:55 -06:00
tmpfs selftests: centralize -D_GNU_SOURCE= to CFLAGS in lib.mk 2024-07-10 12:14:51 -07:00
tpm2 selftests: tpm2: test_smoke: Run only when TPM2 is avaialable. 2024-09-17 18:56:37 +03:00
tty kselftest/tty: Report a consistent test name for the one test we run 2024-05-06 13:57:19 -06:00
turbostat tools/power turbostat: Add selftests for added perf counters 2024-07-26 13:51:25 -04:00
uevent selftests: uevent: add missing gitignore 2024-02-20 16:30:40 -07:00
user_events selftests/user_events: Add non-spacing separator check 2024-05-13 12:15:46 -04:00
vDSO powerpc/vdso: Flag VDSO64 entry points as functions 2024-12-05 14:02:03 +01:00
watchdog selftests/watchdog-test: Fix system accidentally reset after watchdog-test 2024-10-28 21:34:43 -06:00
wireguard wireguard: selftests: load nf_conntrack if not present 2024-12-05 14:02:01 +01:00
x86 Documentation/srso: Document a method for checking safe RET operates properly 2024-08-27 09:16:35 +02:00
zram selftests/zram: Adapt the situation that /dev/zram0 is being used 2022-01-27 10:59:02 -07:00
.gitignore selftests: add kselftest_install to .gitignore 2022-03-03 15:16:57 -07:00
gen_kselftest_tar.sh selftests: introduce gen_tar Makefile target 2020-05-19 16:11:46 -06:00
kselftest.h selftests: kselftest: Use strerror() on nolibc 2024-09-11 09:52:33 -06:00
kselftest_deps.sh selftests: kselftest_deps: fix l5_test() empty variable 2024-05-08 16:46:41 -06:00
kselftest_harness.h selftests: harness: rename __constructor_order for clarification 2024-08-06 13:40:26 -06:00
kselftest_install.sh selftests: gen_kselftest_tar.sh: Do not clobber kselftest/ 2019-11-07 14:43:27 -07:00
kselftest_module.h selftest: Taint kernel when test module loaded 2022-07-11 16:58:11 -06:00
lib.mk - 875fa64577da ("mm/hugetlb_vmemmap: fix race with speculative PFN 2024-07-21 17:15:46 -07:00
Makefile selftests: sched_ext: Add sched_ext as proper selftest target 2024-10-09 06:42:51 -10:00
run_kselftest.sh kselftest/runner.sh: add netns support 2023-12-23 00:26:32 +00:00