]> www.infradead.org Git - users/hch/misc.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)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 18 Feb 2025 11:00:01 +0000 (12:00 +0100)
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>
net/vmw_vsock/af_vsock.c
net/vmw_vsock/vsock_bpf.c

index 53a081d49d28ac1c04e7f8057c8a55e7b73cc131..7e3db87ae4333cf63327ec105ca99253569bb9fe 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;
        }