You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
selftests/bpf: test maximum recursion depth for bpf_core_types_are_compat()
bpf_core_types_are_compat() was limited to 2 recursion levels, which are
enough to parse a function prototype.
Add a test which checks the existence of a function prototype, so to
test the bpf_core_types_are_compat() code path.
The test for the recursion limit being hit is done in a separate object,
because the kernel failure makes the whole load to fail.
Sample run log with extra prints:
[ 5689.913751] bpf_core_apply_relo_insn:1200 cands->len: 2
[ 5689.913902] bpf_core_types_are_compat:6896: ret: 1
[ 5689.913994] bpf_core_types_are_compat:6896: ret: 0
[ 5689.914025] bpf_core_apply_relo_insn:1200 cands->len: 2
[ 5689.914141] bpf_core_types_are_compat:6896: ret: 0
[ 5689.914246] bpf_core_types_are_compat:6896: ret: 0
test_core_kern_lskel:PASS:open_and_load 0 nsec
test_core_kern_lskel:PASS:attach(core_relo_proto) 0 nsec
test_core_kern_lskel:PASS:bpf_core_type_exists 0 nsec
test_core_kern_lskel:PASS:!bpf_core_type_exists 0 nsec
#41 core_kern_lskel:OK
[ 5689.915267] bpf_core_apply_relo_insn:1200 cands->len: 2
[ 5689.915399] bpf_core_types_are_compat:6896: ret: 0
[ 5689.915504] bpf_core_types_are_compat:6896: ret: -22
test_core_kern_overflow_lskel:PASS:open_and_load 0 nsec
#42 core_kern_overflow_lskel:OK
Summary: 2/0 PASSED, 0 SKIPPED, 0 FAILED
Successfully unloaded bpf_testmod.ko.
Signed-off-by: Matteo Croce <[email protected]>
0 commit comments