All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net] vhost/net: fix heads usage of ubuf_info
@ 2013-03-17 12:46 ` Michael S. Tsirkin
  0 siblings, 0 replies; 14+ messages in thread
From: Michael S. Tsirkin @ 2013-03-17 12:46 UTC (permalink / raw)
  To: David S. Miller
  Cc: kvm, netdev, linux-kernel, Nicholas A. Bellinger, virtualization,
	stable, Basil Gor

ubuf info allocator uses guest controlled head as an index,
so a malicious guest could put the same head entry in the ring twice,
and we will get two callbacks on the same value.
To fix use upend_idx which is guaranteed to be unique.

Reported-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Cc: stable@kernel.org
---

Rusty's working on switching to allocating ubufs dynamically
but that's not 3.9 material.
This patch is against latest net master,
needed for 3.9-rc2 and older kernels.

 drivers/vhost/net.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
index 959b1cd..ec6fb3f 100644
--- a/drivers/vhost/net.c
+++ b/drivers/vhost/net.c
@@ -339,7 +339,8 @@ static void handle_tx(struct vhost_net *net)
 				msg.msg_controllen = 0;
 				ubufs = NULL;
 			} else {
-				struct ubuf_info *ubuf = &vq->ubuf_info[head];
+				struct ubuf_info *ubuf;
+				ubuf = vq->ubuf_info + vq->upend_idx;
 
 				vq->heads[vq->upend_idx].len =
 					VHOST_DMA_IN_PROGRESS;
-- 
MST

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2013-03-21 16:33 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-17 12:46 [PATCH net] vhost/net: fix heads usage of ubuf_info Michael S. Tsirkin
2013-03-17 12:46 ` Michael S. Tsirkin
2013-03-17 18:29 ` David Miller
2013-03-17 18:29   ` David Miller
2013-03-17 18:50   ` Michael S. Tsirkin
2013-03-17 18:50     ` Michael S. Tsirkin
2013-03-21  6:02   ` Michael S. Tsirkin
2013-03-21  6:02     ` Michael S. Tsirkin
2013-03-21 16:23     ` Ben Hutchings
2013-03-21 16:28       ` Michael S. Tsirkin
2013-03-21 16:28         ` Michael S. Tsirkin
2013-03-21 16:33         ` Ben Hutchings
2013-03-21 16:33           ` Ben Hutchings
2013-03-21 16:23     ` Ben Hutchings

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.