From: Feng Yang <[email protected]> Calling bpf_lwt_xmit_push_encap will not cause a crash when dst is missing.
Signed-off-by: Feng Yang <[email protected]> --- .../selftests/bpf/progs/verifier_lwt.c | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tools/testing/selftests/bpf/progs/verifier_lwt.c b/tools/testing/selftests/bpf/progs/verifier_lwt.c index 5ab746307309..9cef07e6eceb 100644 --- a/tools/testing/selftests/bpf/progs/verifier_lwt.c +++ b/tools/testing/selftests/bpf/progs/verifier_lwt.c @@ -231,4 +231,24 @@ __naked void not_permitted_for_lwt_prog(void) : __clobber_all); } +SEC("lwt_xmit") +__description("missing dst when calling bpf_lwt_xmit_push_encap") +__success __retval(0) +__naked void missing_dst_call_bpf_lwt_xmit_push_encap(void) +{ + asm volatile (" \ + r9 = 69; \ + r3 = r10; \ + r3 += -32; \ + *(u64 *)(r3 + 0) = r9; \ + r2 = 2; \ + r4 = 20; \ + call %[bpf_lwt_push_encap]; \ + r0 = 0; \ + exit; \ +" : + : __imm(bpf_lwt_push_encap) + : __clobber_all); +} + char _license[] SEC("license") = "GPL"; -- 2.43.0

