]> git.dujemihanovic.xyz Git - linux.git/commit
vsock: fix recursive ->recvmsg calls
authorCong Wang <cong.wang@bytedance.com>
Mon, 12 Aug 2024 02:21:53 +0000 (19:21 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 15 Aug 2024 10:07:04 +0000 (12:07 +0200)
commit69139d2919dd4aa9a553c8245e7c63e82613e3fc
tree072eafbdd97a3d7ed4981ac2f89eef90974a8582
parentb2ca1661c7db9693095cee7991c55d67c3b5d346
vsock: fix recursive ->recvmsg calls

After a vsock socket has been added to a BPF sockmap, its prot->recvmsg
has been replaced with vsock_bpf_recvmsg(). Thus the following
recursiion could happen:

vsock_bpf_recvmsg()
 -> __vsock_recvmsg()
  -> vsock_connectible_recvmsg()
   -> prot->recvmsg()
    -> vsock_bpf_recvmsg() again

We need to fix it by calling the original ->recvmsg() without any BPF
sockmap logic in __vsock_recvmsg().

Fixes: 634f1a7110b4 ("vsock: support sockmap")
Reported-by: syzbot+bdb4bd87b5e22058e2a4@syzkaller.appspotmail.com
Tested-by: syzbot+bdb4bd87b5e22058e2a4@syzkaller.appspotmail.com
Cc: Bobby Eshleman <bobby.eshleman@bytedance.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Cong Wang <cong.wang@bytedance.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Link: https://patch.msgid.link/20240812022153.86512-1-xiyou.wangcong@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
include/net/af_vsock.h
net/vmw_vsock/af_vsock.c
net/vmw_vsock/vsock_bpf.c