From 16ae98c704ed6bb76bf28245c98e68ee2f3b1c03 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 19 May 2025 15:36:50 +0000 Subject: [PATCH] Revert "selftests/bpf: validate that tail call invalidates packet pointers" This reverts commit b7c0d2d4ef13e0ce1c5e1d0e01eeb586bea709f4 which is commit d9706b56e13b7916461ca6b4b731e169ed44ed09 upstream. It breaks the Android kernel abi and can be brought back in the future in an abi-safe way if it is really needed. Bug: 161946584 Change-Id: Idc87be361a116e8167341bce65c022dfddea3dd3 Signed-off-by: Greg Kroah-Hartman --- .../selftests/bpf/progs/verifier_sock.c | 28 ------------------- 1 file changed, 28 deletions(-) diff --git a/tools/testing/selftests/bpf/progs/verifier_sock.c b/tools/testing/selftests/bpf/progs/verifier_sock.c index 3c8f6646e33d..e85f0f1deac7 100644 --- a/tools/testing/selftests/bpf/progs/verifier_sock.c +++ b/tools/testing/selftests/bpf/progs/verifier_sock.c @@ -50,13 +50,6 @@ struct { __uint(map_flags, BPF_F_NO_PREALLOC); } sk_storage_map SEC(".maps"); -struct { - __uint(type, BPF_MAP_TYPE_PROG_ARRAY); - __uint(max_entries, 1); - __uint(key_size, sizeof(__u32)); - __uint(value_size, sizeof(__u32)); -} jmp_table SEC(".maps"); - SEC("cgroup/skb") __description("skb->sk: no NULL check") __failure __msg("invalid mem access 'sock_common_or_null'") @@ -1012,25 +1005,4 @@ int invalidate_pkt_pointers_from_global_func(struct __sk_buff *sk) return TCX_PASS; } -__noinline -int tail_call(struct __sk_buff *sk) -{ - bpf_tail_call_static(sk, &jmp_table, 0); - return 0; -} - -/* Tail calls invalidate packet pointers. */ -SEC("tc") -__failure __msg("invalid mem access") -int invalidate_pkt_pointers_by_tail_call(struct __sk_buff *sk) -{ - int *p = (void *)(long)sk->data; - - if ((void *)(p + 1) > (void *)(long)sk->data_end) - return TCX_DROP; - tail_call(sk); - *p = 42; /* this is unsafe */ - return TCX_PASS; -} - char _license[] SEC("license") = "GPL";