[dpdk-stable] patch 'vhost: fix crash after mmap failure' has been queued to LTS release 17.11.6
Yongseok Koh
yskoh at mellanox.com
Fri Mar 8 18:46:46 CET 2019
Hi,
FYI, your patch has been queued to LTS release 17.11.6
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objection by 03/13/19. So please
shout if anyone has objection.
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.
Yongseok
---
>From 855eea4e18c11d5a7856adfa570eca1f39863f6f 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 74c286e34..aacf75b13 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -334,6 +334,9 @@ qva_to_vva(struct virtio_net *dev, uint64_t qva, uint64_t *len)
struct rte_vhost_mem_region *r;
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++) {
r = &dev->mem->regions[i];
@@ -348,6 +351,7 @@ qva_to_vva(struct virtio_net *dev, uint64_t qva, uint64_t *len)
r->host_user_addr;
}
}
+out_error:
*len = 0;
return 0;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2019-03-08 09:46:40.801703391 -0800
+++ 0008-vhost-fix-crash-after-mmap-failure.patch 2019-03-08 09:46:39.987396000 -0800
@@ -1,14 +1,15 @@
-From cf14478d775cadbaed4f5aa96e3812b44a2383c1 Mon Sep 17 00:00:00 2001
+From 855eea4e18c11d5a7856adfa570eca1f39863f6f 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 74c286e34..aacf75b13 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
-@@ -489,6 +489,9 @@ qva_to_vva(struct virtio_net *dev, uint64_t qva, uint64_t *len)
+@@ -334,6 +334,9 @@ qva_to_vva(struct virtio_net *dev, uint64_t qva, uint64_t *len)
struct rte_vhost_mem_region *r;
uint32_t i;
@@ -31,7 +32,7 @@
/* Find the region where the address lives. */
for (i = 0; i < dev->mem->nregions; i++) {
r = &dev->mem->regions[i];
-@@ -503,6 +506,7 @@ qva_to_vva(struct virtio_net *dev, uint64_t qva, uint64_t *len)
+@@ -348,6 +351,7 @@ qva_to_vva(struct virtio_net *dev, uint64_t qva, uint64_t *len)
r->host_user_addr;
}
}
More information about the stable
mailing list