diff options
Diffstat (limited to 'tools/testing/selftests/bpf/progs/test_global_func11.c')
-rw-r--r-- | tools/testing/selftests/bpf/progs/test_global_func11.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/progs/test_global_func11.c b/tools/testing/selftests/bpf/progs/test_global_func11.c new file mode 100644 index 000000000000..283e036dc401 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/test_global_func11.c @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0-only +#include <stddef.h> +#include <linux/bpf.h> +#include <bpf/bpf_helpers.h> +#include "bpf_misc.h" + +struct S { + int x; +}; + +__noinline int foo(const struct S *s) +{ + return s ? bpf_get_prandom_u32() < s->x : 0; +} + +SEC("cgroup_skb/ingress") +__failure __msg("Caller passes invalid args into func#1") +int global_func11(struct __sk_buff *skb) +{ + return foo((const void *)skb); +} |