]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
vsock/bpf: Warn on socket without transport
authorMichal Luczaj <mhal@rbox.co>
Thu, 13 Feb 2025 11:58:50 +0000 (12:58 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Feb 2025 12:30:17 +0000 (04:30 -0800)
[ Upstream commit 857ae05549ee2542317e7084ecaa5f8536634dd9 ]

In the spirit of commit 91751e248256 ("vsock: prevent null-ptr-deref in
vsock_*[has_data|has_space]"), armorize the "impossible" cases with a
warning.

Fixes: 634f1a7110b4 ("vsock: support sockmap")
Signed-off-by: Michal Luczaj <mhal@rbox.co>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/vmw_vsock/af_vsock.c
net/vmw_vsock/vsock_bpf.c

index 37299a7ca1876e58ff516b5112d44b171cb896b0..eb6ea26b390ee8134a49cb788727d2b103971878 100644 (file)
@@ -1189,6 +1189,9 @@ static int vsock_read_skb(struct sock *sk, skb_read_actor_t read_actor)
 {
        struct vsock_sock *vsk = vsock_sk(sk);
 
+       if (WARN_ON_ONCE(!vsk->transport))
+               return -ENODEV;
+
        return vsk->transport->read_skb(vsk, read_actor);
 }
 
index f201d9eca1df2f8143638cf7a4d08671e8368c11..07b96d56f3a577af71021b1b8132743554996c4f 100644 (file)
@@ -87,7 +87,7 @@ static int vsock_bpf_recvmsg(struct sock *sk, struct msghdr *msg,
        lock_sock(sk);
        vsk = vsock_sk(sk);
 
-       if (!vsk->transport) {
+       if (WARN_ON_ONCE(!vsk->transport)) {
                copied = -ENODEV;
                goto out;
        }