]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests/bpf: null checks for rdonly_untrusted_mem should be preserved
authorEduard Zingerman <eddyz87@gmail.com>
Wed, 2 Jul 2025 07:36:20 +0000 (00:36 -0700)
committerAndrii Nakryiko <andrii@kernel.org>
Wed, 2 Jul 2025 17:43:30 +0000 (10:43 -0700)
Test case checking that verifier does not assume rdonly_untrusted_mem
values as not null.

Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/r/20250702073620.897517-2-eddyz87@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
tools/testing/selftests/bpf/progs/mem_rdonly_untrusted.c

index b0486af36f55053ac3f450dbb076365ecd569109..8185130ede9570b3ebeb5cb4787bff887cfd2ad9 100644 (file)
@@ -174,4 +174,25 @@ int misaligned_access(void *ctx)
        return combine(bpf_rdonly_cast(&global, 0) + 1);
 }
 
+__weak int return_one(void)
+{
+       return 1;
+}
+
+SEC("socket")
+__success
+__retval(1)
+int null_check(void *ctx)
+{
+       int *p;
+
+       p = bpf_rdonly_cast(0, 0);
+       if (p == 0)
+               /* make this a function call to avoid compiler
+                * moving r0 assignment before check.
+                */
+               return return_one();
+       return 0;
+}
+
 char _license[] SEC("license") = "GPL";