diff options
author | Cristian Marussi <cristian.marussi@arm.com> | 2019-10-25 18:57:09 +0100 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2019-11-08 11:10:37 +0000 |
commit | c2820987047c08d813396b2b1d8ac2894ba0bd5f (patch) | |
tree | 998e67158043ae1471bd9e8212b369b21910a00c /tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el3h.c | |
parent | kselftest: arm64: mangle_pstate_invalid_daif_bits (diff) | |
download | linux-dev-c2820987047c08d813396b2b1d8ac2894ba0bd5f.tar.xz linux-dev-c2820987047c08d813396b2b1d8ac2894ba0bd5f.zip |
kselftest: arm64: mangle_pstate_invalid_mode_el[123][ht]
Add 6 simple mangle testcases that mess with the ucontext_t from within
the signal handler, trying to toggle PSTATE mode bits to trick the system
into switching to EL1/EL2/EL3 using both SP_EL0(t) and SP_ELx(h).
Expects SIGSEGV on test PASS.
Reviewed-by: Dave Martin <Dave.Martin@arm.com>
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el3h.c')
-rw-r--r-- | tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el3h.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el3h.c b/tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el3h.c new file mode 100644 index 000000000000..9e6829b7e5db --- /dev/null +++ b/tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el3h.c @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2019 ARM Limited + * + * Try to mangle the ucontext from inside a signal handler, toggling + * the mode bit to escalate exception level: this attempt must be spotted + * by Kernel and the test case is expected to be termninated via SEGV. + */ + +#include "test_signals_utils.h" +#include "testcases.h" + +#include "mangle_pstate_invalid_mode_template.h" + +DEFINE_TESTCASE_MANGLE_PSTATE_INVALID_MODE(3h); |