diff --git a/tools/testing/selftests/bpf/progs/verifier_sock.c b/tools/testing/selftests/bpf/progs/verifier_sock.c index e85f0f1deac7..ee76b51005ab 100644 --- a/tools/testing/selftests/bpf/progs/verifier_sock.c +++ b/tools/testing/selftests/bpf/progs/verifier_sock.c @@ -977,32 +977,4 @@ l1_%=: r0 = *(u8*)(r7 + 0); \ : __clobber_all); } -__noinline -long skb_pull_data2(struct __sk_buff *sk, __u32 len) -{ - return bpf_skb_pull_data(sk, len); -} - -__noinline -long skb_pull_data1(struct __sk_buff *sk, __u32 len) -{ - return skb_pull_data2(sk, len); -} - -/* global function calls bpf_skb_pull_data(), which invalidates packet - * pointers established before global function call. - */ -SEC("tc") -__failure __msg("invalid mem access") -int invalidate_pkt_pointers_from_global_func(struct __sk_buff *sk) -{ - int *p = (void *)(long)sk->data; - - if ((void *)(p + 1) > (void *)(long)sk->data_end) - return TCX_DROP; - skb_pull_data1(sk, 0); - *p = 42; /* this is unsafe */ - return TCX_PASS; -} - char _license[] SEC("license") = "GPL";