summaryrefslogtreecommitdiff
path: root/tools/testing
diff options
context:
space:
mode:
authorRichard Patel <ripatel@wii.dev>2026-05-18 21:39:18 +0300
committerPaul Walmsley <pjw@kernel.org>2026-06-07 05:17:05 +0300
commit15b4155138505669d3d43d7692459ee8ea2a86e7 (patch)
treebaa36ce9115747e83ef66d50ada3ae12d8173b4e /tools/testing
parentaad60bdd0b5a6dfa40454ab03ce658408eaf4615 (diff)
downloadlinux-15b4155138505669d3d43d7692459ee8ea2a86e7.tar.xz
riscv: cfi: reject unknown flags in PR_SET_CFI
prctl(PR_SET_CFI,PR_CFI_BRANCH_LANDING_PADS) silently ignored unknown control values. Only PR_CFI_{ENABLE,DISABLE,LOCK} should be permitted. This changes the behavior of the uABI (fails previously accepted bits with EINVAL). Fixes: 08ee1559052b ("prctl: cfi: change the branch landing pad prctl()s to be more descriptive") Signed-off-by: Richard Patel <ripatel@wii.dev> Link: https://patch.msgid.link/20260518183918.322545-1-ripatel@wii.dev [pjw@kernel.org: change the patch description to note that although this is a uABI change, it does not break the uABI] Signed-off-by: Paul Walmsley <pjw@kernel.org>
Diffstat (limited to 'tools/testing')
-rw-r--r--tools/testing/selftests/riscv/cfi/cfitests.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/testing/selftests/riscv/cfi/cfitests.c b/tools/testing/selftests/riscv/cfi/cfitests.c
index 39d097b6881f..0e3943461e7d 100644
--- a/tools/testing/selftests/riscv/cfi/cfitests.c
+++ b/tools/testing/selftests/riscv/cfi/cfitests.c
@@ -141,6 +141,12 @@ int main(int argc, char *argv[])
ksft_print_msg("Starting risc-v tests\n");
+ /* Test unknown PR_CFI bits */
+ ret = my_syscall5(__NR_prctl, PR_SET_CFI, PR_CFI_BRANCH_LANDING_PADS,
+ PR_CFI_ENABLE | 0xffff0, 0, 0);
+ if (!ret)
+ ksft_exit_fail_msg("PR_SET_CFI accepted reserved branch landing pad bits\n");
+
/*
* Landing pad test. Not a lot of kernel changes to support landing
* pads for user mode except lighting up a bit in senvcfg via a prctl.