Messages in this thread Patch in this message |  | | From | Leon Romanovsky <> | | Subject | [PATCH v2 2/4] selftests/bpf: add test cases for fw_validate_cmd hook | | Date | Tue, 31 Mar 2026 08:56:34 +0300 |
| |
From: Chiara Meiohas <cmeiohas@nvidia.com>
The first test validates that the BPF verifier accepts a program that accesses the hook parameters (in_len) and returns values in the valid errno range.
The second test validates that the BPF verifier rejects a program that returns a positive value, which is outside the valid [-4095, 0] return range for BPF-LSM hooks.
Signed-off-by: Chiara Meiohas <cmeiohas@nvidia.com> Reviewed-by: Maher Sanalla <msanalla@nvidia.com> Signed-off-by: Leon Romanovsky <leonro@nvidia.com> --- tools/testing/selftests/bpf/progs/verifier_lsm.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+)
diff --git a/tools/testing/selftests/bpf/progs/verifier_lsm.c b/tools/testing/selftests/bpf/progs/verifier_lsm.c index 38e8e91768620..9b2487948f8cb 100644 --- a/tools/testing/selftests/bpf/progs/verifier_lsm.c +++ b/tools/testing/selftests/bpf/progs/verifier_lsm.c @@ -188,4 +188,27 @@ int BPF_PROG(null_check, struct file *file) return 0; } +SEC("lsm/fw_validate_cmd") +__description("lsm fw_validate_cmd: validate hook parameters") +__success +int BPF_PROG(fw_validate_cmd_test, const void *in, size_t in_len, + const struct device *dev, enum fw_cmd_class class_id, u32 id) +{ + if (!in_len) + return -22; + + return 0; +} + +SEC("lsm/fw_validate_cmd") +__description("lsm fw_validate_cmd: invalid positive return") +__failure __msg("R0 has smin=1 smax=1 should have been in [-4095, 0]") +__naked int fw_validate_cmd_fail(void *ctx) +{ + asm volatile ( + "r0 = 1;" + "exit;" + ::: __clobber_all); +} + char _license[] SEC("license") = "GPL"; -- 2.53.0
|  |