[PATCH 1/7] selftests/resctrl: Ensure the benchmark commands fits to its array

From: Ilpo Järvinen
Date: Tue Aug 08 2023 - 12:44:40 EST


Benchmark command is copied into an array in the stack. The array is
BENCHMARK_ARGS items long but the command line could try to provide a
longer command.

Return error in case the benchmark command does not fit to its array.

Fixes: ecdbb911f22d ("selftests/resctrl: Add MBM test")
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>
---
tools/testing/selftests/resctrl/resctrl_tests.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/tools/testing/selftests/resctrl/resctrl_tests.c b/tools/testing/selftests/resctrl/resctrl_tests.c
index d511daeb6851..eef9e02516ad 100644
--- a/tools/testing/selftests/resctrl/resctrl_tests.c
+++ b/tools/testing/selftests/resctrl/resctrl_tests.c
@@ -255,6 +255,9 @@ int main(int argc, char **argv)
return ksft_exit_skip("Not running as root. Skipping...\n");

if (has_ben) {
+ if (argc - ben_ind >= BENCHMARK_ARGS - 1)
+ ksft_exit_fail_msg("Too long benchmark command");
+
/* Extract benchmark command from command line. */
for (i = ben_ind; i < argc; i++) {
benchmark_cmd[i - ben_ind] = benchmark_cmd_area[i];
--
2.30.2