mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
selftests/bpf: Extend bpf_iter_unix to attempt deadlocking
Updating a sockmap from a unix iterator prog may lead to a deadlock. Piggyback on the original selftest. Signed-off-by: Michal Luczaj <mhal@rbox.co> Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org> Reviewed-by: Jiayuan Chen <jiayuan.chen@linux.dev> Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com> Link: https://patch.msgid.link/20260414-unix-proto-update-null-ptr-deref-v4-3-2af6fe97918e@rbox.co
This commit is contained in:
committed by
Martin KaFai Lau
parent
4d328dd695
commit
997b8483d4
@@ -7,6 +7,13 @@
|
||||
|
||||
char _license[] SEC("license") = "GPL";
|
||||
|
||||
SEC(".maps") struct {
|
||||
__uint(type, BPF_MAP_TYPE_SOCKMAP);
|
||||
__uint(max_entries, 1);
|
||||
__type(key, __u32);
|
||||
__type(value, __u64);
|
||||
} sockmap;
|
||||
|
||||
static long sock_i_ino(const struct sock *sk)
|
||||
{
|
||||
const struct socket *sk_socket = sk->sk_socket;
|
||||
@@ -76,5 +83,8 @@ int dump_unix(struct bpf_iter__unix *ctx)
|
||||
|
||||
BPF_SEQ_PRINTF(seq, "\n");
|
||||
|
||||
/* Test for deadlock. */
|
||||
bpf_map_update_elem(&sockmap, &(int){0}, sk, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user