summaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/bpf/prog_tests/test_global_funcs.c
diff options
context:
space:
mode:
authorDmitrii Banshchikov <me@ubique.spb.ru>2020-11-13 17:17:56 +0000
committerAlexei Starovoitov <ast@kernel.org>2020-11-14 08:17:27 -0800
commitf782e2c300a717233b64697affda3ea7aac00b2b (patch)
tree7fa16ea50da2ef7daa298a339b156ef137224861 /tools/testing/selftests/bpf/prog_tests/test_global_funcs.c
parent50431b45685b600fc2851a3f2b53e24643efe6d3 (diff)
downloadlinux-f782e2c300a717233b64697affda3ea7aac00b2b.tar.bz2
bpf: Relax return code check for subprograms
Currently verifier enforces return code checks for subprograms in the same manner as it does for program entry points. This prevents returning arbitrary scalar values from subprograms. Scalar type of returned values is checked by btf_prepare_func_args() and hence it should be safe to allow only scalars for now. Relax return code checks for subprograms and allow any correct scalar values. Fixes: 51c39bb1d5d10 (bpf: Introduce function-by-function verification) Signed-off-by: Dmitrii Banshchikov <me@ubique.spb.ru> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20201113171756.90594-1-me@ubique.spb.ru
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/test_global_funcs.c')
-rw-r--r--tools/testing/selftests/bpf/prog_tests/test_global_funcs.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/prog_tests/test_global_funcs.c b/tools/testing/selftests/bpf/prog_tests/test_global_funcs.c
index 193002b14d7f..32e4348b714b 100644
--- a/tools/testing/selftests/bpf/prog_tests/test_global_funcs.c
+++ b/tools/testing/selftests/bpf/prog_tests/test_global_funcs.c
@@ -60,6 +60,7 @@ void test_test_global_funcs(void)
{ "test_global_func5.o" , "expected pointer to ctx, but got PTR" },
{ "test_global_func6.o" , "modified ctx ptr R2" },
{ "test_global_func7.o" , "foo() doesn't return scalar" },
+ { "test_global_func8.o" },
};
libbpf_print_fn_t old_print_fn = NULL;
int err, i, duration = 0;