lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <lgpswwclsuiukh2q5couf33jytf6abneazmwkty6fevoxcgh5p@3dzfbmenjhco> Date: Tue, 28 Mar 2023 11:29:12 +0200 From: Stefano Garzarella <sgarzare@...hat.com> To: Arseniy Krasnov <avkrasnov@...rdevices.ru> Cc: Stefan Hajnoczi <stefanha@...hat.com>, "David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, Bobby Eshleman <bobby.eshleman@...edance.com>, kvm@...r.kernel.org, virtualization@...ts.linux-foundation.org, netdev@...r.kernel.org, linux-kernel@...r.kernel.org, kernel@...rdevices.ru, oxffffaa@...il.com Subject: Re: [RFC PATCH v2 2/3] virtio/vsock: WARN_ONCE() for invalid state of socket On Sun, Mar 26, 2023 at 01:09:25AM +0300, Arseniy Krasnov wrote: >This adds WARN_ONCE() and return from stream dequeue callback when >socket's queue is empty, but 'rx_bytes' still non-zero. Nit: I would explain why we add this, for example: This allows the detection of potential bugs due to packet merging (see previous patch). > >Signed-off-by: Arseniy Krasnov <AVKrasnov@...rdevices.ru> >--- > net/vmw_vsock/virtio_transport_common.c | 7 +++++++ > 1 file changed, 7 insertions(+) > >diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c >index b9144af71553..ad70531de133 100644 >--- a/net/vmw_vsock/virtio_transport_common.c >+++ b/net/vmw_vsock/virtio_transport_common.c >@@ -398,6 +398,13 @@ virtio_transport_stream_do_dequeue(struct vsock_sock *vsk, > u32 free_space; > > spin_lock_bh(&vvs->rx_lock); >+ >+ if (WARN_ONCE(skb_queue_empty(&vvs->rx_queue) && vvs->rx_bytes, >+ "No skbuffs with non-zero 'rx_bytes'\n")) { Nit: I would rephrase it this way: "rx_queue is empty, but rx_bytes is non-zero" >+ spin_unlock_bh(&vvs->rx_lock); >+ return err; >+ } >+ > while (total < len && !skb_queue_empty(&vvs->rx_queue)) { > skb = skb_peek(&vvs->rx_queue); > >-- >2.25.1 > Anyway the patch LGTM! Reviewed-by: Stefano Garzarella <sgarzare@...hat.com>
Powered by blists - more mailing lists