From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 7244D5F2F for ; Fri, 14 Dec 2018 18:53:06 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id DA5ABC075BCB; Fri, 14 Dec 2018 17:53:05 +0000 (UTC) Received: from ktraynor.remote.csb (ovpn-116-106.ams2.redhat.com [10.36.116.106]) by smtp.corp.redhat.com (Postfix) with ESMTP id 390BF60F80; Fri, 14 Dec 2018 17:52:57 +0000 (UTC) From: Kevin Traynor To: Maxime Coquelin Cc: Tiwei Bie , Jens Freimann , dpdk stable Date: Fri, 14 Dec 2018 17:52:00 +0000 Message-Id: <20181214175203.24908-16-ktraynor@redhat.com> In-Reply-To: <20181214175203.24908-1-ktraynor@redhat.com> References: <20181214175203.24908-1-ktraynor@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 14 Dec 2018 17:53:05 +0000 (UTC) Subject: [dpdk-stable] patch 'vhost: fix crash after mmap failure' has been queued to stable release 18.08.1 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 17:53:06 -0000 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 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 Signed-off-by: Maxime Coquelin Reviewed-by: Jens Freimann --- 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 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@dpdk.org Reviewed-by: Tiwei Bie Signed-off-by: Maxime Coquelin @@ -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: