From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <i.maximets@samsung.com>
Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com
 [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id E2BD14F94
 for <dev@dpdk.org>; Thu, 11 Apr 2019 12:23:14 +0200 (CEST)
Received: from eucas1p1.samsung.com (unknown [182.198.249.206])
 by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id
 20190411102313euoutp0164f743329b4982475a4ab2893a8c836c~UZG28y9Pa1555515555euoutp01N
 for <dev@dpdk.org>; Thu, 11 Apr 2019 10:23:13 +0000 (GMT)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com
 20190411102313euoutp0164f743329b4982475a4ab2893a8c836c~UZG28y9Pa1555515555euoutp01N
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
 s=mail20170921; t=1554978193;
 bh=SGgW5a+nPwKBqGsDLJQfYLUwh/cObeqQpX/hOs02B+Q=;
 h=From:To:Cc:Subject:Date:References:From;
 b=rm7m7WMPDB5AvggZ7IckylmiinZiTZJqGwl3QxpybB2/Oe6GigRz+PW1b08flXRDg
 jhrMAq1Jwt8NSn10th3nOLzNQ5ysSAl1rnZWGitmzxMLiknOUVwoDcMOHUgkvlyyC7
 FTdH9isKkGGXFBpmMmAfLGpBaGOoEHXFKWY4HV30=
Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by
 eucas1p2.samsung.com (KnoxPortal) with ESMTP id
 20190411102313eucas1p252cb1995d4b2622b0f9c519b9cf42136~UZG2gxJcL2418924189eucas1p25;
 Thu, 11 Apr 2019 10:23:13 +0000 (GMT)
Received: from eucas1p1.samsung.com ( [182.198.249.206]) by
 eusmges2new.samsung.com (EUCPMTA) with SMTP id 4D.9B.04377.1951FAC5; Thu, 11
 Apr 2019 11:23:13 +0100 (BST)
Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by
 eucas1p2.samsung.com (KnoxPortal) with ESMTPA id
 20190411102312eucas1p2c52abee0af4079ca87c8bb8af7b16274~UZG1stoQY2125221252eucas1p2S;
 Thu, 11 Apr 2019 10:23:12 +0000 (GMT)
Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by
 eusmtrp2.samsung.com (KnoxPortal) with ESMTP id
 20190411102312eusmtrp24e0aa570fa41132209bcc72370395085~UZG1WG9pz1143911439eusmtrp2N;
 Thu, 11 Apr 2019 10:23:12 +0000 (GMT)
X-AuditID: cbfec7f4-12dff70000001119-d4-5caf1591fe97
Received: from eusmtip2.samsung.com ( [203.254.199.222]) by
 eusmgms1.samsung.com (EUCPMTA) with SMTP id 43.FA.04146.0951FAC5; Thu, 11
 Apr 2019 11:23:12 +0100 (BST)
Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by
 eusmtip2.samsung.com (KnoxPortal) with ESMTPA id
 20190411102311eusmtip281d2c0277702b742fff8fafc6983b309~UZG00Ay7h1438914389eusmtip2m;
 Thu, 11 Apr 2019 10:23:11 +0000 (GMT)
From: Ilya Maximets <i.maximets@samsung.com>
To: dev@dpdk.org, Maxime Coquelin <maxime.coquelin@redhat.com>
Cc: Tiwei Bie <tiwei.bie@intel.com>, Jens Freimann <jfreimann@redhat.com>,
 Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>, David Marchand
 <david.marchand@redhat.com>, Ilya Maximets <i.maximets@samsung.com>,
 stable@dpdk.org
Date: Thu, 11 Apr 2019 13:23:06 +0300
Message-Id: <20190411102306.11943-1-i.maximets@samsung.com>
X-Mailer: git-send-email 2.17.1
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrAIsWRmVeSWpSXmKPExsWy7djPc7oTRdfHGHxtY7NYtr+VxWL7ii42
 i3eftjNZXGn/yW5xbs1SFotjnXtYLP51/GG32Nrwn8mBw+PXgqWsHov3vGTyeL/vKptH35ZV
 jAEsUVw2Kak5mWWpRfp2CVwZ2xesZiqYyF3x8tN5lgbGeZxdjJwcEgImEn+Pz2XpYuTiEBJY
 wSix9uZsZgjnC6PE70cXmCCcz4wS6ze3scO0NB19CmYLCSxnlJh6UBui6AejxIOHzawgCTYB
 HYlTq48wgtgiAnYSU/b8BBvLLPCMUWLyqy4WkISwgKPEobUP2EBsFgFViVPn+8BsXgFricUz
 F7FBbJOXWL3hAFizhMB1Non2K09YIRIuEntPPYAqEpZ4dXwL1HkyEv93zmeCsOsl7re8ZIRo
 7mCUmH7oH1TCXmLL63NADRxAJ2lKrN+lDxF2lGg6soAFJCwhwCdx460gSJgZyJy0bTozRJhX
 oqNNCKJaReL3weXMELaUxM13n6Eu8JCYuH4RNIBiJaY/b2KZwCg3C2HXAkbGVYziqaXFuemp
 xUZ5qeV6xYm5xaV56XrJ+bmbGIHp4PS/4192MO76k3SIUYCDUYmH14FhXYwQa2JZcWXuIUYJ
 DmYlEd4QlvUxQrwpiZVVqUX58UWlOanFhxilOViUxHmrGR5ECwmkJ5akZqemFqQWwWSZODil
 Ghg1GW7bqkdEHrg0zy/jWY5Bu67uzab+raWXC8Ldtj72Cm3U4ddgmnl+b+StVzOvV2z0Pb7O
 zur91hV7tRVm50m8lmbhY8w7KmsRcTwz//E+Hcd3/CecDk4tfZNrskxEMMiCXa5Pwqf0YIv9
 tfXP7p0o2JjVPON5+sn6QrsD7/dsXyk6I/jpmw9KLMUZiYZazEXFiQCoqPuAAwMAAA==
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrOLMWRmVeSWpSXmKPExsVy+t/xe7oTRNfHGJzaw2qxbH8ri8X2FV1s
 Fu8+bWeyuNL+k93i3JqlLBbHOvewWPzr+MNusbXhP5MDh8evBUtZPRbvecnk8X7fVTaPvi2r
 GANYovRsivJLS1IVMvKLS2yVog0tjPQMLS30jEws9QyNzWOtjEyV9O1sUlJzMstSi/TtEvQy
 ti9YzVQwkbvi5afzLA2M8zi7GDk5JARMJJqOPmXvYuTiEBJYyijRvmgxG0RCSuLHrwusELaw
 xJ9rXWwQRd8YJc5c7GcBSbAJ6EicWn2EEcQWEXCQuL3nFQtIEbPAK0aJOa272EESwgKOEofW
 PgCbyiKgKnHqfB+YzStgLbF45iKobfISqzccYJ7AyLOAkWEVo0hqaXFuem6xoV5xYm5xaV66
 XnJ+7iZGYCBuO/Zz8w7GSxuDDzEKcDAq8fBO+L02Rog1say4MvcQowQHs5IIbwjL+hgh3pTE
 yqrUovz4otKc1OJDjKZAyycyS4km5wOjJK8k3tDU0NzC0tDc2NzYzEJJnPe8QWWUkEB6Yklq
 dmpqQWoRTB8TB6dUAyPb6co5GeVfGN367GeU92Vz7995c42E4QLfCLMH7tIi2Qd5u4L/N8+P
 +fsg39Zu9YUPbNWr+9bvu772v8ysOrWJu56WmBXkX8t73bdjcdzhpoKrVsVdaq9OfAj6Vb38
 /qSXKcHPfaUjkjNOvJAqznTnLIi5pGzo9EDUWkPVTd60qeDhAv1QFyWW4oxEQy3mouJEAAHg
 cmFaAgAA
X-CMS-MailID: 20190411102312eucas1p2c52abee0af4079ca87c8bb8af7b16274
X-Msg-Generator: CA
Content-Type: text/plain; charset="utf-8"
X-RootMTR: 20190411102312eucas1p2c52abee0af4079ca87c8bb8af7b16274
X-EPHeader: CA
CMS-TYPE: 201P
X-CMS-RootMailID: 20190411102312eucas1p2c52abee0af4079ca87c8bb8af7b16274
References: <CGME20190411102312eucas1p2c52abee0af4079ca87c8bb8af7b16274@eucas1p2.samsung.com>
Subject: [dpdk-dev] [PATCH] vhost: fix device leak on connection add failure
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Apr 2019 10:23:15 -0000

Need to destroy allocated device if application fails to
add new connection or we have fdset failure.

Fixes: acbff5c67ea7 ("vhost: fix crash when exceeding file descriptors")
Fixes: efba12a78ddf ("vhost: add user callbacks for socket open/close")
Cc: stable@dpdk.org

Reported-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
---
 lib/librte_vhost/socket.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/librte_vhost/socket.c b/lib/librte_vhost/socket.c
index 43f091d10..c34668004 100644
--- a/lib/librte_vhost/socket.c
+++ b/lib/librte_vhost/socket.c
@@ -240,7 +240,7 @@ vhost_user_add_connection(int fd, struct vhost_user_socket *vsocket)
 			RTE_LOG(ERR, VHOST_CONFIG,
 				"failed to add vhost user connection with fd %d\n",
 				fd);
-			goto err;
+			goto err_cleanup;
 		}
 	}
 
@@ -257,7 +257,7 @@ vhost_user_add_connection(int fd, struct vhost_user_socket *vsocket)
 		if (vsocket->notify_ops->destroy_connection)
 			vsocket->notify_ops->destroy_connection(conn->vid);
 
-		goto err;
+		goto err_cleanup;
 	}
 
 	pthread_mutex_lock(&vsocket->conn_mutex);
@@ -267,6 +267,8 @@ vhost_user_add_connection(int fd, struct vhost_user_socket *vsocket)
 	fdset_pipe_notify(&vhost_user.fdset);
 	return;
 
+err_cleanup:
+	vhost_destroy_device(vid);
 err:
 	free(conn);
 	close(fd);
-- 
2.17.1

From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id 3772FA0096
	for <public@inbox.dpdk.org>; Thu, 11 Apr 2019 12:23:19 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id DA27C5323;
	Thu, 11 Apr 2019 12:23:16 +0200 (CEST)
Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com
 [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id E2BD14F94
 for <dev@dpdk.org>; Thu, 11 Apr 2019 12:23:14 +0200 (CEST)
Received: from eucas1p1.samsung.com (unknown [182.198.249.206])
 by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id
 20190411102313euoutp0164f743329b4982475a4ab2893a8c836c~UZG28y9Pa1555515555euoutp01N
 for <dev@dpdk.org>; Thu, 11 Apr 2019 10:23:13 +0000 (GMT)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com
 20190411102313euoutp0164f743329b4982475a4ab2893a8c836c~UZG28y9Pa1555515555euoutp01N
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
 s=mail20170921; t=1554978193;
 bh=SGgW5a+nPwKBqGsDLJQfYLUwh/cObeqQpX/hOs02B+Q=;
 h=From:To:Cc:Subject:Date:References:From;
 b=rm7m7WMPDB5AvggZ7IckylmiinZiTZJqGwl3QxpybB2/Oe6GigRz+PW1b08flXRDg
 jhrMAq1Jwt8NSn10th3nOLzNQ5ysSAl1rnZWGitmzxMLiknOUVwoDcMOHUgkvlyyC7
 FTdH9isKkGGXFBpmMmAfLGpBaGOoEHXFKWY4HV30=
Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by
 eucas1p2.samsung.com (KnoxPortal) with ESMTP id
 20190411102313eucas1p252cb1995d4b2622b0f9c519b9cf42136~UZG2gxJcL2418924189eucas1p25;
 Thu, 11 Apr 2019 10:23:13 +0000 (GMT)
Received: from eucas1p1.samsung.com ( [182.198.249.206]) by
 eusmges2new.samsung.com (EUCPMTA) with SMTP id 4D.9B.04377.1951FAC5; Thu, 11
 Apr 2019 11:23:13 +0100 (BST)
Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by
 eucas1p2.samsung.com (KnoxPortal) with ESMTPA id
 20190411102312eucas1p2c52abee0af4079ca87c8bb8af7b16274~UZG1stoQY2125221252eucas1p2S;
 Thu, 11 Apr 2019 10:23:12 +0000 (GMT)
Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by
 eusmtrp2.samsung.com (KnoxPortal) with ESMTP id
 20190411102312eusmtrp24e0aa570fa41132209bcc72370395085~UZG1WG9pz1143911439eusmtrp2N;
 Thu, 11 Apr 2019 10:23:12 +0000 (GMT)
X-AuditID: cbfec7f4-12dff70000001119-d4-5caf1591fe97
Received: from eusmtip2.samsung.com ( [203.254.199.222]) by
 eusmgms1.samsung.com (EUCPMTA) with SMTP id 43.FA.04146.0951FAC5; Thu, 11
 Apr 2019 11:23:12 +0100 (BST)
Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by
 eusmtip2.samsung.com (KnoxPortal) with ESMTPA id
 20190411102311eusmtip281d2c0277702b742fff8fafc6983b309~UZG00Ay7h1438914389eusmtip2m;
 Thu, 11 Apr 2019 10:23:11 +0000 (GMT)
From: Ilya Maximets <i.maximets@samsung.com>
To: dev@dpdk.org, Maxime Coquelin <maxime.coquelin@redhat.com>
Cc: Tiwei Bie <tiwei.bie@intel.com>, Jens Freimann <jfreimann@redhat.com>,
 Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>, David Marchand
 <david.marchand@redhat.com>, Ilya Maximets <i.maximets@samsung.com>,
 stable@dpdk.org
Date: Thu, 11 Apr 2019 13:23:06 +0300
Message-Id: <20190411102306.11943-1-i.maximets@samsung.com>
X-Mailer: git-send-email 2.17.1
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrAIsWRmVeSWpSXmKPExsWy7djPc7oTRdfHGHxtY7NYtr+VxWL7ii42
 i3eftjNZXGn/yW5xbs1SFotjnXtYLP51/GG32Nrwn8mBw+PXgqWsHov3vGTyeL/vKptH35ZV
 jAEsUVw2Kak5mWWpRfp2CVwZ2xesZiqYyF3x8tN5lgbGeZxdjJwcEgImEn+Pz2XpYuTiEBJY
 wSix9uZsZgjnC6PE70cXmCCcz4wS6ze3scO0NB19CmYLCSxnlJh6UBui6AejxIOHzawgCTYB
 HYlTq48wgtgiAnYSU/b8BBvLLPCMUWLyqy4WkISwgKPEobUP2EBsFgFViVPn+8BsXgFricUz
 F7FBbJOXWL3hAFizhMB1Non2K09YIRIuEntPPYAqEpZ4dXwL1HkyEv93zmeCsOsl7re8ZIRo
 7mCUmH7oH1TCXmLL63NADRxAJ2lKrN+lDxF2lGg6soAFJCwhwCdx460gSJgZyJy0bTozRJhX
 oqNNCKJaReL3weXMELaUxM13n6Eu8JCYuH4RNIBiJaY/b2KZwCg3C2HXAkbGVYziqaXFuemp
 xUZ5qeV6xYm5xaV56XrJ+bmbGIHp4PS/4192MO76k3SIUYCDUYmH14FhXYwQa2JZcWXuIUYJ
 DmYlEd4QlvUxQrwpiZVVqUX58UWlOanFhxilOViUxHmrGR5ECwmkJ5akZqemFqQWwWSZODil
 Ghg1GW7bqkdEHrg0zy/jWY5Bu67uzab+raWXC8Ldtj72Cm3U4ddgmnl+b+StVzOvV2z0Pb7O
 zur91hV7tRVm50m8lmbhY8w7KmsRcTwz//E+Hcd3/CecDk4tfZNrskxEMMiCXa5Pwqf0YIv9
 tfXP7p0o2JjVPON5+sn6QrsD7/dsXyk6I/jpmw9KLMUZiYZazEXFiQCoqPuAAwMAAA==
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrOLMWRmVeSWpSXmKPExsVy+t/xe7oTRNfHGJzaw2qxbH8ri8X2FV1s
 Fu8+bWeyuNL+k93i3JqlLBbHOvewWPzr+MNusbXhP5MDh8evBUtZPRbvecnk8X7fVTaPvi2r
 GANYovRsivJLS1IVMvKLS2yVog0tjPQMLS30jEws9QyNzWOtjEyV9O1sUlJzMstSi/TtEvQy
 ti9YzVQwkbvi5afzLA2M8zi7GDk5JARMJJqOPmXvYuTiEBJYyijRvmgxG0RCSuLHrwusELaw
 xJ9rXWwQRd8YJc5c7GcBSbAJ6EicWn2EEcQWEXCQuL3nFQtIEbPAK0aJOa272EESwgKOEofW
 PgCbyiKgKnHqfB+YzStgLbF45iKobfISqzccYJ7AyLOAkWEVo0hqaXFuem6xoV5xYm5xaV66
 XnJ+7iZGYCBuO/Zz8w7GSxuDDzEKcDAq8fBO+L02Rog1say4MvcQowQHs5IIbwjL+hgh3pTE
 yqrUovz4otKc1OJDjKZAyycyS4km5wOjJK8k3tDU0NzC0tDc2NzYzEJJnPe8QWWUkEB6Yklq
 dmpqQWoRTB8TB6dUAyPb6co5GeVfGN367GeU92Vz7995c42E4QLfCLMH7tIi2Qd5u4L/N8+P
 +fsg39Zu9YUPbNWr+9bvu772v8ysOrWJu56WmBXkX8t73bdjcdzhpoKrVsVdaq9OfAj6Vb38
 /qSXKcHPfaUjkjNOvJAqznTnLIi5pGzo9EDUWkPVTd60qeDhAv1QFyWW4oxEQy3mouJEAAHg
 cmFaAgAA
X-CMS-MailID: 20190411102312eucas1p2c52abee0af4079ca87c8bb8af7b16274
X-Msg-Generator: CA
Content-Type: text/plain; charset="UTF-8"
X-RootMTR: 20190411102312eucas1p2c52abee0af4079ca87c8bb8af7b16274
X-EPHeader: CA
CMS-TYPE: 201P
X-CMS-RootMailID: 20190411102312eucas1p2c52abee0af4079ca87c8bb8af7b16274
References: <CGME20190411102312eucas1p2c52abee0af4079ca87c8bb8af7b16274@eucas1p2.samsung.com>
Subject: [dpdk-dev] [PATCH] vhost: fix device leak on connection add failure
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>
Message-ID: <20190411102306.lPf_amvrtmxnU07TIGNCa7z_WbKLGpaIalOe5Qkq6a4@z>

Need to destroy allocated device if application fails to
add new connection or we have fdset failure.

Fixes: acbff5c67ea7 ("vhost: fix crash when exceeding file descriptors")
Fixes: efba12a78ddf ("vhost: add user callbacks for socket open/close")
Cc: stable@dpdk.org

Reported-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
---
 lib/librte_vhost/socket.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/librte_vhost/socket.c b/lib/librte_vhost/socket.c
index 43f091d10..c34668004 100644
--- a/lib/librte_vhost/socket.c
+++ b/lib/librte_vhost/socket.c
@@ -240,7 +240,7 @@ vhost_user_add_connection(int fd, struct vhost_user_socket *vsocket)
 			RTE_LOG(ERR, VHOST_CONFIG,
 				"failed to add vhost user connection with fd %d\n",
 				fd);
-			goto err;
+			goto err_cleanup;
 		}
 	}
 
@@ -257,7 +257,7 @@ vhost_user_add_connection(int fd, struct vhost_user_socket *vsocket)
 		if (vsocket->notify_ops->destroy_connection)
 			vsocket->notify_ops->destroy_connection(conn->vid);
 
-		goto err;
+		goto err_cleanup;
 	}
 
 	pthread_mutex_lock(&vsocket->conn_mutex);
@@ -267,6 +267,8 @@ vhost_user_add_connection(int fd, struct vhost_user_socket *vsocket)
 	fdset_pipe_notify(&vhost_user.fdset);
 	return;
 
+err_cleanup:
+	vhost_destroy_device(vid);
 err:
 	free(conn);
 	close(fd);
-- 
2.17.1