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 PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 7 Dec 2020 10:59:54 +0100 From: Stefano Garzarella <sgarzare@...hat.com> To: Andra Paraschiv <andraprs@...zon.com> Cc: netdev <netdev@...r.kernel.org>, linux-kernel <linux-kernel@...r.kernel.org>, "David S . Miller" <davem@...emloft.net>, David Duncan <davdunc@...zon.com>, Dexuan Cui <decui@...rosoft.com>, Alexander Graf <graf@...zon.de>, Jorgen Hansen <jhansen@...are.com>, Jakub Kicinski <kuba@...nel.org>, Stefan Hajnoczi <stefanha@...hat.com>, Vitaly Kuznetsov <vkuznets@...hat.com> Subject: Re: [PATCH net-next v2 3/4] af_vsock: Set VMADDR_FLAG_TO_HOST flag on the receive path On Fri, Dec 04, 2020 at 07:02:34PM +0200, Andra Paraschiv wrote: >The vsock flags can be set during the connect() setup logic, when >initializing the vsock address data structure variable. Then the vsock >transport is assigned, also considering this flags field. > >The vsock transport is also assigned on the (listen) receive path. The >flags field needs to be set considering the use case. > >Set the value of the vsock flags of the remote address to the one >targeted for packets forwarding to the host, if the following conditions >are met: > >* The source CID of the packet is higher than VMADDR_CID_HOST. >* The destination CID of the packet is higher than VMADDR_CID_HOST. > >Changelog > >v1 -> v2 > >* Set the vsock flag on the receive path in the vsock transport > assignment logic. >* Use bitwise operator for the vsock flag setup. >* Use the updated "VMADDR_FLAG_TO_HOST" flag naming. > >Signed-off-by: Andra Paraschiv <andraprs@...zon.com> >--- > net/vmw_vsock/af_vsock.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) Reviewed-by: Stefano Garzarella <sgarzare@...hat.com> > >diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c >index d10916ab45267..83d035eab0b05 100644 >--- a/net/vmw_vsock/af_vsock.c >+++ b/net/vmw_vsock/af_vsock.c >@@ -431,6 +431,18 @@ int vsock_assign_transport(struct vsock_sock *vsk, struct vsock_sock *psk) > unsigned int remote_cid = vsk->remote_addr.svm_cid; > int ret; > >+ /* If the packet is coming with the source and destination CIDs higher >+ * than VMADDR_CID_HOST, then a vsock channel where all the packets are >+ * forwarded to the host should be established. Then the host will >+ * need to forward the packets to the guest. >+ * >+ * The flag is set on the (listen) receive path (psk is not NULL). On >+ * the connect path the flag can be set by the user space application. >+ */ >+ if (psk && vsk->local_addr.svm_cid > VMADDR_CID_HOST && >+ vsk->remote_addr.svm_cid > VMADDR_CID_HOST) >+ vsk->remote_addr.svm_flags |= VMADDR_FLAG_TO_HOST; >+ > switch (sk->sk_type) { > case SOCK_DGRAM: > new_transport = transport_dgram; >-- >2.20.1 (Apple Git-117) > > > > >Amazon Development Center (Romania) S.R.L. registered office: 27A Sf. Lazar Street, UBC5, floor 2, Iasi, Iasi County, 700045, Romania. Registered in Romania. Registration number J22/2621/2005. >
Powered by blists - more mailing lists