[dpdk-stable] patch 'vhost: fix crash after mmap failure' has been queued to stable release 18.08.1

Kevin Traynor ktraynor at redhat.com
Fri Dec 14 18:52:00 CET 2018


Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/18/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 72c7adc36db4aaca11ee4787335ffc8115bcfc2e Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin at redhat.com>
Date: Tue, 27 Nov 2018 10:54:51 +0100
Subject: [PATCH] vhost: fix crash after mmap failure

[ upstream commit cf14478d775cadbaed4f5aa96e3812b44a2383c1 ]

If mmap() call fails in vhost_user_set_mem_table, dev->mem
is set to NULL. If later, qva_to_vva() is called, a segfault
occurs.

Fixes: 8f972312b8f4 ("vhost: support vhost-user")

Reviewed-by: Tiwei Bie <tiwei.bie at intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin at redhat.com>
Reviewed-by: Jens Freimann <jfreimann at redhat.com>
---
 lib/librte_vhost/vhost_user.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index ba92d1650..68e9bf8c4 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -447,4 +447,7 @@ qva_to_vva(struct virtio_net *dev, uint64_t qva, uint64_t *len)
 	uint32_t i;
 
+	if (unlikely(!dev || !dev->mem))
+		goto out_error;
+
 	/* Find the region where the address lives. */
 	for (i = 0; i < dev->mem->nregions; i++) {
@@ -461,4 +464,5 @@ qva_to_vva(struct virtio_net *dev, uint64_t qva, uint64_t *len)
 		}
 	}
+out_error:
 	*len = 0;
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-12-14 17:49:48.167558800 +0000
+++ 0016-vhost-fix-crash-after-mmap-failure.patch	2018-12-14 17:49:47.000000000 +0000
@@ -1,14 +1,15 @@
-From cf14478d775cadbaed4f5aa96e3812b44a2383c1 Mon Sep 17 00:00:00 2001
+From 72c7adc36db4aaca11ee4787335ffc8115bcfc2e Mon Sep 17 00:00:00 2001
 From: Maxime Coquelin <maxime.coquelin at redhat.com>
 Date: Tue, 27 Nov 2018 10:54:51 +0100
 Subject: [PATCH] vhost: fix crash after mmap failure
 
+[ upstream commit cf14478d775cadbaed4f5aa96e3812b44a2383c1 ]
+
 If mmap() call fails in vhost_user_set_mem_table, dev->mem
 is set to NULL. If later, qva_to_vva() is called, a segfault
 occurs.
 
 Fixes: 8f972312b8f4 ("vhost: support vhost-user")
-Cc: stable at dpdk.org
 
 Reviewed-by: Tiwei Bie <tiwei.bie at intel.com>
 Signed-off-by: Maxime Coquelin <maxime.coquelin at redhat.com>
@@ -18,10 +19,10 @@
  1 file changed, 4 insertions(+)
 
 diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
-index 3ea64eba6..557213491 100644
+index ba92d1650..68e9bf8c4 100644
 --- a/lib/librte_vhost/vhost_user.c
 +++ b/lib/librte_vhost/vhost_user.c
-@@ -490,4 +490,7 @@ qva_to_vva(struct virtio_net *dev, uint64_t qva, uint64_t *len)
+@@ -447,4 +447,7 @@ qva_to_vva(struct virtio_net *dev, uint64_t qva, uint64_t *len)
  	uint32_t i;
  
 +	if (unlikely(!dev || !dev->mem))
@@ -29,7 +30,7 @@
 +
  	/* Find the region where the address lives. */
  	for (i = 0; i < dev->mem->nregions; i++) {
-@@ -504,4 +507,5 @@ qva_to_vva(struct virtio_net *dev, uint64_t qva, uint64_t *len)
+@@ -461,4 +464,5 @@ qva_to_vva(struct virtio_net *dev, uint64_t qva, uint64_t *len)
  		}
  	}
 +out_error:


More information about the stable mailing list