From nobody Tue Apr 30 12:16:19 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1642393319; cv=pass; d=zohomail.com; s=zohoarc; b=ArBOOHOvL+M7Hn3lxG4JauNxwEPjkMKxiiD1gWwUpjOJrfEc8x4e7ysvjxJowGA4RE8cm5xBs+oyXYn8XUO6mrsyMDntmMxS5G00IF8Q2BuWjKGMvxwxLRKDOpyYqMA8i+uX8zZSLdJEUJaYym1K/YI15guoXta4baU6sgi1R24= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642393319; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PrPEqpkJrUxgZcmBNVlhHwOUKrXUdCP3grhsT1Ye6zw=; b=m6RPuvNQnFfg/mnJPolH82C5wNyeTIkFgwITzvCvZ/etculwJrqHJmlUC+wqXQahxCIFurdPYVvFhSaEgkbDBtVcUgHtrYR8YjeSb+TXRwPgFdQEergAo2zLLZ4l1k+RK4b2lAo49m7UNp/Z7Tg+q1tHRn5ASmW8ibc6p7prqv0= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1642393319742946.675204793206; Sun, 16 Jan 2022 20:21:59 -0800 (PST) Received: from localhost ([::1]:35962 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9JWo-0002fV-Mv for importer@patchew.org; Sun, 16 Jan 2022 23:21:58 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47228) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9JNh-0006eB-EL for qemu-devel@nongnu.org; Sun, 16 Jan 2022 23:12:33 -0500 Received: from mx0a-002c1b01.pphosted.com ([148.163.151.68]:9588) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9JNf-0003MC-DE for qemu-devel@nongnu.org; Sun, 16 Jan 2022 23:12:32 -0500 Received: from pps.filterd (m0127840.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 20GJKdlr007012; Sun, 16 Jan 2022 20:12:26 -0800 Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2171.outbound.protection.outlook.com [104.47.58.171]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 3dkufw2heu-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 16 Jan 2022 20:12:26 -0800 Received: from BL3PR02MB7938.namprd02.prod.outlook.com (2603:10b6:208:355::20) by BL3PR02MB8018.namprd02.prod.outlook.com (2603:10b6:208:359::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.9; Mon, 17 Jan 2022 04:12:24 +0000 Received: from BL3PR02MB7938.namprd02.prod.outlook.com ([fe80::4ce1:59d7:578d:7e75]) by BL3PR02MB7938.namprd02.prod.outlook.com ([fe80::4ce1:59d7:578d:7e75%5]) with mapi id 15.20.4888.013; Mon, 17 Jan 2022 04:12:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint20171006; bh=PrPEqpkJrUxgZcmBNVlhHwOUKrXUdCP3grhsT1Ye6zw=; b=GqacF2OuOvJpXuJb2S5G/fxRMIkGOCCTKOzfCM1KALBdy4z82YwFqOvkgoNPYCQyq4vM NXV55V8pHDGwGDKI8zOdTlMQMLLj1Qd8YyCdzgGi4pSpskiaYYaTrPnkqBg9HP9xZDEs zaQFIgp245bFuihhQnL0px/ewVaYN3lEZeThADfQ9JuDQLwgeEiRs96sg4HPHOP/jWFA JCrmb7cZ08E/ywI0e9mYwtXiwOBV4sSSv+7hfvK4MpR9WkHTPdA/3hr+zsb2VN46sJ1u +jFStKRbfRNrDxWt4UVX0NgHCCBgdMo4Gh/5+/FOf0ujX5CdCCvVhs0/sQxX6agnPNV4 xA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iDv8RtD+8GIN/QOZXeGSmDuTv75uE1Dj3iFG6fVNduVgchDVk7LwJk/xNVGCSK314NOS0nf2cV73BaTrGMuiWPH9gOFT2HqQokkqsmaBM5FUpL6oTNQXkGRsPviZ+8lvrQMtJGwMyun/qw/0Le6W8SYi+7oBYfBo2l0H9c9p5vkb6RAcL+mWn2mIRHCXVMEhu6/QMFTQIM9PsDZWz/47ypLPjcUfISXMgUWixcvdgzrIeYRgaF1cjf3u5e81++fkOm4W0FP4maQhutROhp9CXmiESAX1wtpwOmzbcM3J6aUdJxJ3svkQo+O0hklWvfPHa7P63oeoWQIBIeh8MypIpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PrPEqpkJrUxgZcmBNVlhHwOUKrXUdCP3grhsT1Ye6zw=; b=XLAEiImGfAcn4KWNC5Kqk4RC4PERs6+jX5jYVWhqot7aSjrckspICoyWmyqp2Qj3YOlNmK51kp4NJvfKpzoySqwpPIYJpCSshRplWf6ITKBovezcZg6z8DLpxIkpGZdYNpjCDZ47Nix4FnXP9EUgs3n2hnIkdlApLL3MtgrIrQRPaezGBkUnyKbXbTSCJApIheyohmQbFVJeReJFZee3zVsIqD15aVSaf339skKZYdqkig3+nofASxS/ycOwsswfcf3qiHZVhASbOSQ1IOgGjPdfhQd7h68exqnjM+oYuOtekcfl1gXKZwkmuDPY0bwHQjwOyiAP+55o2oU1vUNzNg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none From: Raphael Norwitz To: "stefanha@redhat.com" , "marcandre.lureau@redhat.com" , "mst@redhat.com" , "david@redhat.com" Subject: [PATCH v3 1/6] libvhost-user: Add vu_rem_mem_reg input validation Thread-Topic: [PATCH v3 1/6] libvhost-user: Add vu_rem_mem_reg input validation Thread-Index: AQHYC1hui2c7rDhyxUuUIehSKkRCNQ== Date: Mon, 17 Jan 2022 04:12:24 +0000 Message-ID: <20220117041050.19718-2-raphael.norwitz@nutanix.com> References: <20220117041050.19718-1-raphael.norwitz@nutanix.com> In-Reply-To: <20220117041050.19718-1-raphael.norwitz@nutanix.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.20.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e6ec0696-5d86-460c-2aee-08d9d96f90f6 x-ms-traffictypediagnostic: BL3PR02MB8018:EE_ x-microsoft-antispam-prvs: x-proofpoint-crosstenant: true x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: e04NlVeuHK9pwIf+dqFt1iu5ypl9Mn4fW8ydRv7Jt+bD/kSeczGfgyykGSIb9dpPrVzUr+upFwLxd++BhHNhRPsSKwoPHTHmTqvb6xt0gX+mSdGhoNTGEOAilGKEpf2T4yDH/sFtXB4IqC+Nlo4G4u2pEUUmjBzx6CVMbFX41/cBMYef4dMhNR87i85i7E+01l4/lPzeAK3vy7Dg8Fwt3l+4WmIil7+WMfBHxILhV/uKp3uaQ94UhRIIIeXqtmqZXW8g5cnsveHlas4cSpm3cM3sg631qz7zI0O5L59e+oeT1itKbzzHDUCRggOw0hvAjYcF5UL7ywBCz+MdCjNpQ5gskaqQOyxecz5G/80KkV87JNDpQaJhymnfgA0hz6L1uhpsRwJ+ZglnkjcUNu/xzU7nmEtQcFFHLtdxiYPhIaXlUcUuaAy5ZQhIaOwUn8RvlVEftX9IOOnxdmJb4t52Je9mY25uKz2mHbGGwOWqn4Spi8hFLjE0Bx5ck9la5L9KYkvfX6mBBoY3AeV5zhXlVnykYgsoZ7PA3l57ULOLRY3wNvXjLLr/AXAfImfx2EfwDIQ1ZhXu1T8iQ4aBDOenvVPQTc12Ewj7BBTC0p1PlsBrjNwNfvrrl/jDTOZweHDYlAjHK/D6qlmkkuja0PRfe7vV2Bnxcacm/ep8KGbDQwbmA9elw62XTIrXl6FZKErWtGjyJsKZh1cFz1aeexx8JQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL3PR02MB7938.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(38100700002)(508600001)(66946007)(1076003)(316002)(71200400001)(64756008)(83380400001)(36756003)(8676002)(76116006)(66446008)(66556008)(6486002)(66476007)(86362001)(6506007)(8936002)(44832011)(2906002)(26005)(6512007)(5660300002)(4326008)(38070700005)(54906003)(122000001)(110136005)(186003)(2616005)(107886003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?W07qHd4OMSEHJYESVgCfkv3h5F+Tr9nLNSVmo7BTvZKaa1ZrLpwm4qR5O+?= =?iso-8859-1?Q?3BaHr63EhB7g8pcVO14HtabjowztBz1C9P3H+mOk2gE2WU0WRv6lNcfZcm?= =?iso-8859-1?Q?agHIOmpgmavKBwFqPerTDyu4OL50qIWtkvCuJedyGUJVsj+HiVniwvo+II?= =?iso-8859-1?Q?hJKR1uUAPmSAGxcPGEy3GJ8XuUGzhfLCDxgM8zPCrhUmdx2E9riQk/Q8mC?= =?iso-8859-1?Q?WuEmIwoFzwMDmeNTB/1c14LW9ose9a8xbGuAoEViInu3IUdMke0+zjNscL?= =?iso-8859-1?Q?I6ykrolWoh1PzUvzBTdoVxiIkBeyZ04iCaWk9QqdJoCh+6rvnKEqZwWjM6?= =?iso-8859-1?Q?e8nv2hy/vzMO53AhSnaQkCPn7DykV/Fy3D2lloHTVdAt1kU/i/pW8GPmpo?= =?iso-8859-1?Q?Oh44Fd5EyhUJ7fMwkZ9lbzST4xLkOoPFNxzk1nnbDdgOYX6tTcBBYdjHCV?= =?iso-8859-1?Q?7Za9O3k00GqkxBIlRReBwRQdxPan+gT7tmzpD534CdRjBq8zQoPAthT3U1?= =?iso-8859-1?Q?AeUJoiorArUOXBFLPQkCsqD6lEjyGGNAGSg3F+gpjCyHLCTKq2mP3SF2o0?= =?iso-8859-1?Q?khU9eusDke9x5+7DIUWlcT3W0tNs8KGYp9SdW8VxO/sd94tB3pjfQ6/Wo0?= =?iso-8859-1?Q?sBAXYNTuxx4SJam5tX6K1n4GpWLpnvNzW9Wkj7XsTlksxpGQOuFvDAgAfM?= =?iso-8859-1?Q?QbB2ixw1epOvsqgMhO2gSf13TZOOTpGRYlIdczowDtm+ywYM94vUmfLzxN?= =?iso-8859-1?Q?n2muRuggQHW83PSEk14rbXrhD02LN+jR19oIrETfSJ8zfNxapKuDSvHABU?= =?iso-8859-1?Q?uDzqEmot0B4sXgWViyRJb9DwtOjTSYjNYdF+YOz2em00jBMWnu3HKHZ/xl?= =?iso-8859-1?Q?ICEC0XpFsxTSstBeRVBzPHi/NBmcc5Vt3Gep/nbTz4aKXGw/X1cxR0kVIj?= =?iso-8859-1?Q?wcLV917i9rCdSTVThZSSF5ODTXEjz/5DwmvHCeuyeIhDoUHqtdLq3THht3?= =?iso-8859-1?Q?JRBd3ZQC3OIJnDdj5Hv/AA02LZd+TqxPozx8bGPKSgCAVEVt20vcAzwUP+?= =?iso-8859-1?Q?r69OPOQbotxMP9xLcASXeByw/mNmPLdmgvxNgfrBhqakGenRn69zyIV2GR?= =?iso-8859-1?Q?xDaz1etk3YAioMQEuo4S5it3b/xxFBAGHRnv6b66zzIhBI0ffQZvMJOLQj?= =?iso-8859-1?Q?Y3wlZ5stEzEVfwXxqCHJ0QiqOx+IxxkYSEglA2hJDMuJIFNsFd98nGVmrl?= =?iso-8859-1?Q?NVtMrS5lNBlk+69u+G0AzC2QvorqXW35Tktyo+zZAeiejBrM7EunW3GlgV?= =?iso-8859-1?Q?xaLiN57d4z4MT/raE9gB5WkwMhQGcq/12gFiSG3r8DtnwGE3h+DwukHqHI?= =?iso-8859-1?Q?HdPGHecsVMb8VmFp8sqoMv7d0E2sPlgpVxHhEzTt1mXQyl4pCJ8pbq9gu1?= =?iso-8859-1?Q?3ad2RI7HJhdO66wgLfy7owDJj78eQUi1Hpg/Z8eJFSCJv97uiulV+Mv2Hu?= =?iso-8859-1?Q?oemidyEe9jc+oa/kmvMCsIqtOiys/bsHs2z4ZIUsT3kh7Cj6/fT105InwJ?= =?iso-8859-1?Q?lS6aPST2ul7KuCkn7suOyw8WOFh1CF5bYvABg6LI4M9OnqLnsjZUWoWIyT?= =?iso-8859-1?Q?oLzSYxm0tWr2BB5HtUkaSN4aLjbLLOKVp4uZKEgE/O/IQggbWfqoW0ZekN?= =?iso-8859-1?Q?HEP7i01d/lsNGqARbAZDvaVWR/51XJ72raS+rYHCVZc2p1V+fl5mOQY6gw?= =?iso-8859-1?Q?JRyEgNwCp+3rl13HgzZtpc42k=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL3PR02MB7938.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6ec0696-5d86-460c-2aee-08d9d96f90f6 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2022 04:12:24.5972 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 3AJbkiiN7+RKkX2PhDKiZtLGD8YNBQ94C1isu095jo8OORk0qqQB/N/+SA1n4Tnl1DdqSBDGddVJiybjTUkOFhLb7YOhGTof3R1M0QzY3n0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR02MB8018 X-Proofpoint-GUID: hdVziY2nT9hZ8HgZW9tAIDpR-Kt8Pt4G X-Proofpoint-ORIG-GUID: hdVziY2nT9hZ8HgZW9tAIDpR-Kt8Pt4G X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.62.513 definitions=2022-01-17_01,2022-01-14_01,2021-12-02_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.151.68; envelope-from=raphael.norwitz@nutanix.com; helo=mx0a-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "raphael.s.norwitz@gmail.com" , "qemu-devel@nongnu.org" , Raphael Norwitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1642393321506100001 Content-Type: text/plain; charset="utf-8" Today if multiple FDs are sent from the VMM to the backend in a VHOST_USER_REM_MEM_REG message, one FD will be unmapped and the remaining FDs will be leaked. Therefore if multiple FDs are sent we report an error and fail the operation, closing all FDs in the message. Likewise in case the VMM sends a message with a size less than that of a memory region descriptor, we add a check to gracefully report an error and fail the operation rather than crashing. Signed-off-by: Raphael Norwitz Reviewed-by: David Hildenbrand --- subprojects/libvhost-user/libvhost-user.c | 15 +++++++++++++++ subprojects/libvhost-user/libvhost-user.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvho= st-user/libvhost-user.c index 787f4d2d4f..b09b1c269e 100644 --- a/subprojects/libvhost-user/libvhost-user.c +++ b/subprojects/libvhost-user/libvhost-user.c @@ -801,6 +801,21 @@ vu_rem_mem_reg(VuDev *dev, VhostUserMsg *vmsg) { VuDevRegion shadow_regions[VHOST_USER_MAX_RAM_SLOTS] =3D {}; VhostUserMemoryRegion m =3D vmsg->payload.memreg.region, *msg_region = =3D &m; =20 + if (vmsg->fd_num !=3D 1) { + vmsg_close_fds(vmsg); + vu_panic(dev, "VHOST_USER_REM_MEM_REG received %d fds - only 1 fd " + "should be sent for this message type", vmsg->fd_num= ); + return false; + } + + if (vmsg->size < VHOST_USER_MEM_REG_SIZE) { + close(vmsg->fds[0]); + vu_panic(dev, "VHOST_USER_REM_MEM_REG requires a message size of a= t " + "least %d bytes and only %d bytes were received", + VHOST_USER_MEM_REG_SIZE, vmsg->size); + return false; + } + DPRINT("Removing region:\n"); DPRINT(" guest_phys_addr: 0x%016"PRIx64"\n", msg_region->guest_phys_addr); diff --git a/subprojects/libvhost-user/libvhost-user.h b/subprojects/libvho= st-user/libvhost-user.h index 3d13dfadde..cde9f07bb3 100644 --- a/subprojects/libvhost-user/libvhost-user.h +++ b/subprojects/libvhost-user/libvhost-user.h @@ -129,6 +129,8 @@ typedef struct VhostUserMemoryRegion { uint64_t mmap_offset; } VhostUserMemoryRegion; =20 +#define VHOST_USER_MEM_REG_SIZE (sizeof(VhostUserMemoryRegion)) + typedef struct VhostUserMemory { uint32_t nregions; uint32_t padding; --=20 2.20.1 From nobody Tue Apr 30 12:16:19 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1642393063; cv=pass; d=zohomail.com; s=zohoarc; b=dbAK/58BZHfZ6wdyozAeXoVqHhFleDUpTMVqh2S4QiVzgMcRZtlYqKxmQlWnlOXKdOiLh2pYn9tMatCpfiju8yXo/nPjbU5y0jBH7By+bJ0lmbTnkb85Rxf9+ra4S6BDMjLkB8oppeK9TdD2wYaY8auRspkB1fN7dwz/IQXx1Wk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642393063; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=44ZrRvmfbahsg+z/gNtfg7Ej5XPa8KWTStWXi8F7Qwo=; b=Lir1xbhsTDOAtjgpniUR2PLzAe0sJBrMMjAjlz1B+aWxdvZLeGVdlAMfNYfOhuRFEtourt92urbcj8CDQNoHC7PsBTtb0/tYwbe7Jg9g5r3o4n/uF5IzNnY0zJskqw/2+KMzy4/61GeudG1penevzbT9FEpm4Q/G65xqsOZ2dl8= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1642393063565839.0865309925601; Sun, 16 Jan 2022 20:17:43 -0800 (PST) Received: from localhost ([::1]:55108 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9JSg-0004zo-Ib for importer@patchew.org; Sun, 16 Jan 2022 23:17:42 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47258) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9JNk-0006gO-Mn for qemu-devel@nongnu.org; Sun, 16 Jan 2022 23:12:37 -0500 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]:12278) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9JNh-0003MU-VC for qemu-devel@nongnu.org; Sun, 16 Jan 2022 23:12:35 -0500 Received: from pps.filterd (m0127842.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 20GNl9Et029596; Sun, 16 Jan 2022 20:12:32 -0800 Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2170.outbound.protection.outlook.com [104.47.58.170]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 3dkxfjaate-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 16 Jan 2022 20:12:32 -0800 Received: from BL3PR02MB7938.namprd02.prod.outlook.com (2603:10b6:208:355::20) by BL3PR02MB8018.namprd02.prod.outlook.com (2603:10b6:208:359::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.9; Mon, 17 Jan 2022 04:12:31 +0000 Received: from BL3PR02MB7938.namprd02.prod.outlook.com ([fe80::4ce1:59d7:578d:7e75]) by BL3PR02MB7938.namprd02.prod.outlook.com ([fe80::4ce1:59d7:578d:7e75%5]) with mapi id 15.20.4888.013; Mon, 17 Jan 2022 04:12:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint20171006; bh=44ZrRvmfbahsg+z/gNtfg7Ej5XPa8KWTStWXi8F7Qwo=; b=J8O5gy/kSKd1zwycuIjiNIBONLGx7yCQZ4DdjYrA6PQLDRUf44ppJeW926eu4r299pgs He5t05Rph+BzGGJYC7oupyXap8/p5481JezPXPb1HWgRp8Z7GPJMfFCOUYaxBUHUnG9x NCjorU5kr9ibr2P04SaCEjg7bf0UizF5FRfgJ8Fj6t5kArdO5mI4htvLBbLCNlknAaRj 30olSKRqxNV7vUSBEg458Ccwj5pn09tYgS8SW6H7gAZCmp8ulBRxrcKU/COPbB0U9qdW RIfTeD1+CCi0GvXu6wXuxOkSmvEaXtj4Nffrmj7Cs7SgKlNmcYOTd/GJmfrQMZFQzfad tA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k1uPUd6vkJFCW8RCpm8SDODPhEH32BZFX2P3OMWLSLPClz+Zw8kWKXJ4l+Dt6pB6VyNtB0uCV0ctGeS3yHhvTCOol5tdYYpggZTcgyhPIMvtFnzHKc+0+wXyVa7pX4jzhk8eBY/kO/70l+U6ylf/mMQgCn4Ar48gbI4PESDWHsJRzAc94CK16Gm2jJysHhz3oQ2oDfpB90qLTGJ28AvI1d3cyFTtbYNMW+LOyLEIN+uzqrdRZn0+BDdtL+cMZ6iURbG+YQ15JokLKxxKVXJobBQPoKljW+Z7bjtDiMMCvtrzeXHqQ8mJQi3ESXvEZA1stVbz/5hV3e9IGu41+leRvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=44ZrRvmfbahsg+z/gNtfg7Ej5XPa8KWTStWXi8F7Qwo=; b=fqkLVCddqd1rV9h7VBMQ9w8inASBt2D+HbSTE7P4wB2DVMgsA5h93Stjt7umdYSCejpd4RfKU+rCzaJdR7AlSSe4qXr34l0xrCeBC/nrF1d2x3ulab8NPLrDj4+98rK1/BdfCfmXha5k1UoZr4x7HHWmdUxlL5786q/6fZ1EAxf5t6txzP6gbXbwhKrHGEab7o6PBncxMwRutvbFwKS1sPltvO3uO6BsKJhXwJIcn3fLeNZR4SvLq4FnGeT/eFx6pHnSYMDNqQtxmsV60+NHy5JDpXHw+qfO99qYgIbQUakUXYwzGnXrlhj9cwkdglfJPK2M/VcRRM4BLK09IfseVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none From: Raphael Norwitz To: "stefanha@redhat.com" , "marcandre.lureau@redhat.com" , "mst@redhat.com" , "david@redhat.com" Subject: [PATCH v3 2/6] libvhost-user: Add vu_add_mem_reg input validation Thread-Topic: [PATCH v3 2/6] libvhost-user: Add vu_add_mem_reg input validation Thread-Index: AQHYC1hyG2brQEFqgkq/5jE3B/5vvQ== Date: Mon, 17 Jan 2022 04:12:31 +0000 Message-ID: <20220117041050.19718-3-raphael.norwitz@nutanix.com> References: <20220117041050.19718-1-raphael.norwitz@nutanix.com> In-Reply-To: <20220117041050.19718-1-raphael.norwitz@nutanix.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.20.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7ba68f2a-a107-4c61-5843-08d9d96f9519 x-ms-traffictypediagnostic: BL3PR02MB8018:EE_ x-microsoft-antispam-prvs: x-proofpoint-crosstenant: true x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AHQA6lyQ7kmoqoI8LtYEZh2zgdwXHJglUM6ph0zASVDJU/c1S5bUQ3Sw+feywj9Um2YhC7Y57z4L5CzeAQJJf1U9lCX3F3GS8Gf9UuRm36uk/GszIHZ/hE5SMvLkmQ9L3EMD71sASjpDeedbxTvASIy546KHJYlTAsD4WoOKUF0Bi06d3NKFeXDoGtRtP/QVdHD72sWGG3kSpbxJP88ARoEhGceNcY2NzH4FR7v/OoGEixnW7tHauZ3lIpsw6DlRcInkP7HDRJ6jB8ywfedhUyyl80BIR6ZI0AsK98jYTSwnLjawZLdCkH8zoxRB6uYrZB3jLcLn6FfXDxb/uc1KDJm2x24pTVy/xS87rn0mksK3TLqL9xKw5QFnGdP0oM2Y6F89tjNrms66Y5Oj1h+ZHToqmWbwpRvcgJY2xnOK11NF/74tveQLdhhzbDcIMTHRAaiuD2XaI2DLMIeje168BKdqvClxGkGEhB5DtbS1PYZIMvN1k1HpE07Hv7m4yEqb7rmDwp24EwoL/VzMofy1mCfMKEeiY7frIxV2BCnlLtyIJ9CZj8gsQJdo2h+3LE5dWNNFAIYed8X6GbrqWqRYihp/UmAzoPq3Tq5qsk9rgYO32kCDsmnfSCxQyC0LhbyjeG+VyiGIMD1sEccrtL0loCc4temm4IHg8S33kpEB7a426cRjY39vo9Jaow4X5xVU5gRfDnKeuAgcGnqI8k95PQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL3PR02MB7938.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(38100700002)(508600001)(66946007)(1076003)(316002)(71200400001)(64756008)(83380400001)(36756003)(8676002)(76116006)(66446008)(66556008)(6486002)(66476007)(86362001)(6506007)(8936002)(44832011)(2906002)(26005)(6512007)(5660300002)(4326008)(38070700005)(54906003)(122000001)(110136005)(186003)(2616005)(107886003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?0jPQQO6ZAPMAkjVbBNZuJPJ5yu0L+2OnQBhhVqrrDyFemua/2MrxEVcC8y?= =?iso-8859-1?Q?Yifjyo3OoIEPOrYiQYqCBxv+fdiEQHKMAKaw355/oOlTEfeEzvj+G8TrjD?= =?iso-8859-1?Q?sB7KTIhgbOAQNfR3CUcDNWdsWi1eHktZxbXl7WgB4uSNNYm84tgSLSnV1Z?= =?iso-8859-1?Q?FyGeHs4EHuwBqoVAFIbFkroAZpY1UBlb84CANwZh9DqwOdQnmCKQe/Fxt9?= =?iso-8859-1?Q?iFWyAEWGOHADbi7l1IZNrxGhRvAE0HPBqcPJmitAL24NDFGTYdUbVw2sdn?= =?iso-8859-1?Q?MQBaJNl0af0U5Vre2PC1sFbPKokNPRRsE5Sra3zpBRlB8jh5VtcJJNfdhb?= =?iso-8859-1?Q?7+q/c7HxRVB7/ZB0ZzrQZ2mMX0H5HQqoVCOBv/KOBCFlhOQ1KNa15cMGF/?= =?iso-8859-1?Q?2qYhNmuZBAn0bay6g8etyfC3lPD3eiFZQ8RLMoolOZqj6c9aMO5tq+py+W?= =?iso-8859-1?Q?D1aCUvSL4NhOffx48MDEX8+P4MnNQ5uPQyw4GXADsf9gOVz8JZHNYzhkym?= =?iso-8859-1?Q?4UQ+Q4OhilY2jtuMr3bqmoVObv+Gx3OSeAsyoXiKNjgty+TP3buDElOX+E?= =?iso-8859-1?Q?Wt9kq3lGLGBZJGaN0wqZoSoRM6HeuLXmLM9UY+5KPzgZTvqEBpgFtOkVvV?= =?iso-8859-1?Q?4tZIfMCA5773CSjsm6sF7TNvRa+n1PGd0SsBGhQNbl8eWlpuG4JL6+ivv4?= =?iso-8859-1?Q?cKbmjkNNgNYL91GBPADV+oNEuXtp7RHYx+5sCx4NIDVhZaO8K9APerTUt5?= =?iso-8859-1?Q?nTyCED1LP3a8nVnaW8FughsmraalsvwtYFo5pDkmKlnWLaKtDbyHt3K9w7?= =?iso-8859-1?Q?g4EnsAlM8dioIOsSTy2BKStRuhBVXLw1WFJQnku/w7kp0Jr0LAErR9gVnO?= =?iso-8859-1?Q?Mey6egnv6XEWHVHRWNltO5gORJmh6wEGLWSspL9zT1BtRZUOa60apXY0kI?= =?iso-8859-1?Q?NOMyGJlzTulb9qKCEwjmGEkRmTEG5OxMy6WRG7N0NIvXXdO5qgooixLQVB?= =?iso-8859-1?Q?j4oCvBAGlSa7Bx6g24IMnN1NjLrg5HkZ5/S9FpPXKQGpqbQdrZg8IeyO9P?= =?iso-8859-1?Q?a3M5tOb7rW7lzhe0WeJeb9a9dGMWKNpKITChDDLRYUq2WJ0hWmEJXCL1wA?= =?iso-8859-1?Q?LGmcj8VT1PVDoJ1FKrjg+ZsWfc0mEGyt6Nut1oyNS3CnXrx85vR/xA2qx5?= =?iso-8859-1?Q?IwRjM5MPOB8nrN5npsilBE+Gxr3X8cEBvj3/E89KpQDrL5qeY9aBjH/Rbo?= =?iso-8859-1?Q?ZHTmeMdGec09odh/VyliFIPdXVA8PXzoyiE2U5l1dZFzAYjmmSmoGQ/ZGN?= =?iso-8859-1?Q?Hcy0cfbs45xg/+Ffj07jwF/rAluPTLn1OZpvevhqs8qBf9u54wpuXSG8Qa?= =?iso-8859-1?Q?H+F/jHBGmbeiOhZ5dF86SaTf8MT6EEBKYylisIdcCHuTx2XELAvBMjdsfe?= =?iso-8859-1?Q?kWjKlpHMLqZxhGVHoqkgtyquDhUc21VXmK8aDh5lmnqM6KPc5gljAaulZ+?= =?iso-8859-1?Q?jHoZFDdRpwQCbMWs3o+te6xg6+cx74xDd+XgDe6F43WA4nCAOVug0jth3X?= =?iso-8859-1?Q?K/QuOQvzetzVef5Fh+MnBsGiggY/+BkDekG2NXtN/bphI+K4vBJdnMD/jY?= =?iso-8859-1?Q?H3gZhx6Sjud3tm8eyDFugDpkOgyCxsTMApNsiZvO5H+Ra/R5aCPwbKABMg?= =?iso-8859-1?Q?qTTR5YJQ7uvyUxlDHySzqrmY4b5WeiCbd5djOSXRtnDx7X2XHq5ciQ9O0D?= =?iso-8859-1?Q?QbzkZX9ZEzrSkFCWRxqkW89Aw=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL3PR02MB7938.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7ba68f2a-a107-4c61-5843-08d9d96f9519 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2022 04:12:31.4905 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0L/QL38zNFDb116IJfA8NCpzF89Fiwu0d4w3cBGf0Cy6HXKIVzePYPFzljiKVgJsLo4Z1IRGGnzZGRjb7N3Bro0BW/mOS/N0KLp85SjkNUs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR02MB8018 X-Proofpoint-GUID: 5dfyRWRZQOAF5GMYXIADfxvGsBApSwe8 X-Proofpoint-ORIG-GUID: 5dfyRWRZQOAF5GMYXIADfxvGsBApSwe8 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.62.513 definitions=2022-01-17_01,2022-01-14_01,2021-12-02_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=raphael.norwitz@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "raphael.s.norwitz@gmail.com" , "qemu-devel@nongnu.org" , Raphael Norwitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1642393065805100001 Content-Type: text/plain; charset="utf-8" Today if multiple FDs are sent from the VMM to the backend in a VHOST_USER_ADD_MEM_REG message, one FD will be mapped and the remaining FDs will be leaked. Therefore if multiple FDs are sent we report an error and fail the operation, closing all FDs in the message. Likewise in case the VMM sends a message with a size less than that of a memory region descriptor, we add a check to gracefully report an error and fail the operation rather than crashing. Signed-off-by: Raphael Norwitz Reviewed-by: David Hildenbrand --- subprojects/libvhost-user/libvhost-user.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvho= st-user/libvhost-user.c index b09b1c269e..1a8fc9d600 100644 --- a/subprojects/libvhost-user/libvhost-user.c +++ b/subprojects/libvhost-user/libvhost-user.c @@ -690,6 +690,21 @@ vu_add_mem_reg(VuDev *dev, VhostUserMsg *vmsg) { VuDevRegion *dev_region =3D &dev->regions[dev->nregions]; void *mmap_addr; =20 + if (vmsg->fd_num !=3D 1) { + vmsg_close_fds(vmsg); + vu_panic(dev, "VHOST_USER_ADD_MEM_REG received %d fds - only 1 fd " + "should be sent for this message type", vmsg->fd_num= ); + return false; + } + + if (vmsg->size < VHOST_USER_MEM_REG_SIZE) { + close(vmsg->fds[0]); + vu_panic(dev, "VHOST_USER_ADD_MEM_REG requires a message size of a= t " + "least %d bytes and only %d bytes were received", + VHOST_USER_MEM_REG_SIZE, vmsg->size); + return false; + } + /* * If we are in postcopy mode and we receive a u64 payload with a 0 va= lue * we know all the postcopy client bases have been received, and we --=20 2.20.1 From nobody Tue Apr 30 12:16:19 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1642392878; cv=pass; d=zohomail.com; s=zohoarc; b=EpfBaXmjyWGgTq14wE0nBDCyfjlBc4SiNVtdjII2i4uB13NPsQcHqjZHLfwvHX86MCB2WNPu/gDCfOZBAUL8obI5p8mfAFKBZwkmR6vm4boYpQKvcVIQFWUtQbCo71gzQ9wlyC8AG/rrs11qoxi+3Tl+GMyVxdYerQy5cupXsFY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642392878; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=xaHInSOS/q1CMpidgiagiNwsW+h503QSEfrAjl1YQfA=; b=K18YODhRtEaVlp7/pUOKU9Ymo4ccp70PpG7kv0CVZsbr7JybvpGJ3h452k/eMGX8Xt7cySVxl59mtFcj0up3kxYwPFzDW2Ct7j5CU9NrHo7mIPMpJHWrb7vr3EXLHrCdiAxIdvmTrlteK4iX+x9MTWGn+eUcMHO0lVFt8G53C3A= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1642392878452335.30385123236977; Sun, 16 Jan 2022 20:14:38 -0800 (PST) Received: from localhost ([::1]:48710 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9JPg-0000e2-R1 for importer@patchew.org; Sun, 16 Jan 2022 23:14:36 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47262) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9JNk-0006gh-Q4 for qemu-devel@nongnu.org; Sun, 16 Jan 2022 23:12:37 -0500 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]:26182) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9JNi-0003Mf-MK for qemu-devel@nongnu.org; Sun, 16 Jan 2022 23:12:36 -0500 Received: from pps.filterd (m0127841.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 20GNmbYE022754; Sun, 16 Jan 2022 20:12:33 -0800 Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2169.outbound.protection.outlook.com [104.47.58.169]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 3dkvpbaewj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 16 Jan 2022 20:12:33 -0800 Received: from BL3PR02MB7938.namprd02.prod.outlook.com (2603:10b6:208:355::20) by BL3PR02MB8018.namprd02.prod.outlook.com (2603:10b6:208:359::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.9; Mon, 17 Jan 2022 04:12:32 +0000 Received: from BL3PR02MB7938.namprd02.prod.outlook.com ([fe80::4ce1:59d7:578d:7e75]) by BL3PR02MB7938.namprd02.prod.outlook.com ([fe80::4ce1:59d7:578d:7e75%5]) with mapi id 15.20.4888.013; Mon, 17 Jan 2022 04:12:32 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint20171006; bh=xaHInSOS/q1CMpidgiagiNwsW+h503QSEfrAjl1YQfA=; b=QKeBE1f7vNiQGAOvmkvMn3JXuBGr0r0VognO6zk0zyeUoBMC+EW8eLD/PhZfvjJIrAaF laj2Q7MiDV3hf8hrMlZ8PQpoitYVUv0Wk10Ba2VQLr+YzNece3RMSXcn4wUbuMJpPzTH Nx1fzcvX0WoOtC6AwKiQHJFfloaKeJib+aHEA050N3ze/aEE0e3s7FHTjfzZqMhrQAlF /XBtxM8XvkspQ3pBZN3IfC+fga4UCNkzjzDoMzKhU2tlEwwRXCHNmVZ8ch1NFnueKN+2 Bd7Sg5Hd/1suMXcExXv9KqyvelhpgF13byOaGivtIvrFipggwq0OEUeet7eI2KJxkvLl fA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ais9IBrJ1qq1JQlVPL6WFwmVzmt6jzjyk73Jem7Fa1DSh+mr3/kC7O23SreSbHzOMWucn8czTxVBugan2HGeObFBfAodAP9PwprYrR97xkIzHhmIbqAww09Z6I9qQ8caJVIsqjNouRyXNkTENRhGXTUm2aUVQ5chS/XHYDaYbQvPi3bXmeeB/3mgAPTKD300uYWkadcYeSYV+Rb039ffnUNXsk5JsntzyavACmbsX1T4PtkUDf2bHWXTuBpezjWmRkD/eu0JcVLZdg+8Ldc+LfsymiCWkTLY9e4ImefgT8Z7AonPtOsUzbcFhjXQ2W2uktsuHKlMYp47k/sIG49G7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xaHInSOS/q1CMpidgiagiNwsW+h503QSEfrAjl1YQfA=; b=cs6RkfVZVG2vkF2DdDPGmJV1jOtc0zT6WPOrT2Zq/VN4aEdF3LI/y4AUbv+dcMN/7rA/ya7M6gMZNsW5VNxwj2qemhFeixPZjzhp3ZqNPxuz6cLr/mJUE21pD3thW55SSU/7xsoFTS3zXJQtSPWK9tvd/GgfXi3H73COVDQ4R29ZGp+hNxyc58BRxfdR8YUqEHYYQSJmdicp+xwIaWuWNwT0UB/g4COnehFURgHYBpftY2QlQ2m/j58s9hxOvsctVX29rxqPRqMlZTnIbSOK2rSctaUljDAyKJsdlPXuxKSONYpiKjGWLhA/j+39ZGixk6LvqYfqlaMzBiF6wKLnjw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none From: Raphael Norwitz To: "stefanha@redhat.com" , "marcandre.lureau@redhat.com" , "mst@redhat.com" , "david@redhat.com" Subject: [PATCH v3 3/6] libvhost-user: Simplify VHOST_USER_REM_MEM_REG Thread-Topic: [PATCH v3 3/6] libvhost-user: Simplify VHOST_USER_REM_MEM_REG Thread-Index: AQHYC1hzNWc6tFSMPEOov58tcXyXPw== Date: Mon, 17 Jan 2022 04:12:32 +0000 Message-ID: <20220117041050.19718-4-raphael.norwitz@nutanix.com> References: <20220117041050.19718-1-raphael.norwitz@nutanix.com> In-Reply-To: <20220117041050.19718-1-raphael.norwitz@nutanix.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.20.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f75b1840-699b-442d-f7ab-08d9d96f95c4 x-ms-traffictypediagnostic: BL3PR02MB8018:EE_ x-microsoft-antispam-prvs: x-proofpoint-crosstenant: true x-ms-oob-tlc-oobclassifiers: OLM:5236; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VjAhPR3Z5fYaIg6o9HWtusQ3FyiRezhCFyvQugaBluKT5ZfN4xOs7FUlxtL9EDyHDXPBaFrXMvRGMfGa2YWR/Lcoy7weef/JJRjhFYQJCeg60DCOvwMCjzPAADgMSK9+AYp023Dq4DbGavD86n0DwXUbFnb+IGD5gSLnB26He1Efa1iiIBAcC0xehI5BIkQd42qyT03bnxki5zHvm0hV3FzroTZ20IiEaMvfEImiP5dlZb8KyfXhtEkoEwr2w+kNx5rS/0Rp84ubMzRZ6NURIwO73T1GZ2/aj+q/mSBZKh8mnC7DWSg4x42sUorbNmdW/gExIQRJbEz/08UC71IFo8neb8l5ULEa4/DIe8TABMq8hYhv+txncJTa/YqeKYdMI345lACJyif+ertc/uxKGcrVgTUrb26XOadJqVVWop3ZhWzM4MU0cRat5Z0OTn5X7KII1eY6s0i/5KXQVlI+ehHCyJNLljTrhpM6lXllqQ9xPkOodJ6rxEJYK19fSzZJ4ij67YcD7YEOY9WP/NowQfJKdfh4zYcFk4ZS4+CJi1ldlu8VF+tAwTXMSze130pPhDjNAHBh0WG32L9Fb6t9L7FOYuQ8WyKMx5mr5TbXulv3buMe0t987x/IUPkvcUApRZQRLA8BH8j8w2AUPNcM+icr7955L2JikiPwABuQDohCIsMHOYF0TXXr6ydRS351RaxuEkF9K/WoMscyNbLMaA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL3PR02MB7938.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(38100700002)(508600001)(66946007)(1076003)(316002)(71200400001)(64756008)(83380400001)(36756003)(8676002)(76116006)(66446008)(66556008)(6486002)(66476007)(86362001)(6506007)(8936002)(44832011)(2906002)(26005)(6512007)(5660300002)(4326008)(38070700005)(54906003)(122000001)(110136005)(186003)(2616005)(107886003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?ydnIHdPFcaQE+mYk2Md0dxhVoBhvxEu06XBi9Pa8MskzXurs0qCemkHv95?= =?iso-8859-1?Q?wOfX262wOaN9pOwl8WFe04xcdz/tm8iN7t47WEb2HBlHug81ByXhd03k0A?= =?iso-8859-1?Q?5sWtH9KK+lXrAujuToXXdmq2Ub3MixuZj6ZzfoH6VVmbib3UhytO4l0khl?= =?iso-8859-1?Q?skRbjMrMvtQNKt18eeGTtDk8YzU+8K6F1kNCg4wDSjQJnbaOw0a2KZ4icE?= =?iso-8859-1?Q?yHrhpObrNqR/x9ju1BCTb3arA+ojq4kRE6eE9X5cLvzWzDO7dxQSk4soM0?= =?iso-8859-1?Q?FoA1FPzheD0nG2p2A/dZb/f6mxI7eojYzQyyFQ5eE3qurDUwjR5UnK+R+x?= =?iso-8859-1?Q?rbpemxbEDtfVhWwcdcPdZjiKhYZe0ERvAAkESzyV6EumZ7F3aNcGEhsvCX?= =?iso-8859-1?Q?dLYkctx6Rp0E/yiGsOEjhcywsVVAC246lFKOMcqqoEyO1nOd6VdV6BxORm?= =?iso-8859-1?Q?9n0wUM3h2Nz4RPkyh67WDGMw4/NsS07u8UujrKquyTkYLaEQTJwlWrmnHj?= =?iso-8859-1?Q?2nmCTEeAHFUXezflmZ2MKtN9zRIeWeCe73h8kDcXCNrq4lguLYlCmIBde7?= =?iso-8859-1?Q?XDwYcyQoJjcGF49mgiklcsDsGa5QmvpBMCHrBWJNtXhflZXaYiarq+LBPK?= =?iso-8859-1?Q?jrybVmd2cVX4qn/FNwaheuvqNkJVOTjKA6yyjFY9eVLckD53tJ1k3+kNDx?= =?iso-8859-1?Q?Axv9j2vZIYv1S4EYGzUgxR0VXZltmmaNOGo/OVZOcuvfeHyNDMkKgQC5Jk?= =?iso-8859-1?Q?UEg/TAmAVklrOG3IE4nyXPaj7G/vGuz297cvBQIZL9QR8r60fLLNR7U8pn?= =?iso-8859-1?Q?R6OpORnXrGVwGB0fuD+T5nAwAJWwsOA73WUOD01DUG0SavA2PVM4qovaFe?= =?iso-8859-1?Q?6Bg0aO5DVaObjpxZoLVHIK/6HMy8tiegEyaKZMnrAkJHgv46i20CEscKmh?= =?iso-8859-1?Q?+VwHXjerf4d/XbR8gufHpo1PJgt/ZvWrtoToBg/+CNO6bUSX31tYEIUErf?= =?iso-8859-1?Q?I7/ZnbDo5MD+mE+mk3rGArjxiWjqOGFfhZLpe3qktlSF0TyHrP9PbpfhUQ?= =?iso-8859-1?Q?u4BqaWemlDAdlZwti3MAUvN5BpCZk8gEUOXZKlTX/IBcKJ8LbSrl5a8gsA?= =?iso-8859-1?Q?sbqI7lNZE+2cV2IF7bcz6dYn3+eFYQwleGZANulD0bJVPm0E9fqSOP2KzN?= =?iso-8859-1?Q?ZbavIEo/oZ+hZYSHENiFOhuUTJducb2XFGj3TkRkta0m5nB5eCl0xFChnN?= =?iso-8859-1?Q?94CKJRLQA4TaOLlfWX0FP1j0u953b0HA/ymt24SI9mCe4MNY8FGo3m5ytP?= =?iso-8859-1?Q?NxFYKrRRp/6RA09uhKVdK2P3lMAnIONe7BemvBml9u8c4UXnNXZlxAPBZ+?= =?iso-8859-1?Q?/FX4vDGsnLyppPRVyeHuBSNNv6jINjnh+U8L4fqbgLw+kzYHPLV7NGy+Ic?= =?iso-8859-1?Q?tyUCRRz2pMFIzuAk0taZKDr3/V0bpQA0yXskU+upnBF0jMRaI4gVzIalv3?= =?iso-8859-1?Q?Pn2Bf6cyKItF8yz87z/FaATOBeWO4CQ/vu3qXX/d9cvLLrzSBlV2+VLIQj?= =?iso-8859-1?Q?ds7eZkGYyzYewvqkiLphbToclZd/IxxwIhu/CFxKLm0Fvvpa+oiBrJlMYt?= =?iso-8859-1?Q?vkgjFz/5dnFbPVlKD2QUw4n5pYpOZVxSm60xrNfU2iZda7W0fqaSKjPI24?= =?iso-8859-1?Q?n70yhSBD5HFuu8Uy2gbIqmivp/eOvKJjjNcJxJE3MmNF/0mB+5eNNOFTPX?= =?iso-8859-1?Q?9SB8AThCTdY2TRsl+TA1Cjf98=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL3PR02MB7938.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f75b1840-699b-442d-f7ab-08d9d96f95c4 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2022 04:12:32.6634 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: lXx6Ev6DKXfBO7faJOZapcdDabraKucw4lDQLWV50vX3bWUWF6J0YXvUi9eKDcwMVwJ5Uz000lJAp00q+Ucpt/alJ8k5zZIgVH37i8nHP0I= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR02MB8018 X-Proofpoint-ORIG-GUID: a3A4DmqyXo7wXNX2MNIqEHN1mxBS7YzD X-Proofpoint-GUID: a3A4DmqyXo7wXNX2MNIqEHN1mxBS7YzD X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.62.513 definitions=2022-01-17_01,2022-01-14_01,2021-12-02_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=raphael.norwitz@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "raphael.s.norwitz@gmail.com" , "qemu-devel@nongnu.org" , Raphael Norwitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1642392879426100002 Content-Type: text/plain; charset="utf-8" From: David Hildenbrand Let's avoid having to manually copy all elements. Copy only the ones necessary to close the hole and perform the operation in-place without a second array. Reviewed-by: Stefan Hajnoczi Signed-off-by: David Hildenbrand Signed-off-by: Raphael Norwitz --- subprojects/libvhost-user/libvhost-user.c | 30 +++++++++++------------ 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvho= st-user/libvhost-user.c index 1a8fc9d600..7dd8e918b4 100644 --- a/subprojects/libvhost-user/libvhost-user.c +++ b/subprojects/libvhost-user/libvhost-user.c @@ -811,10 +811,8 @@ static inline bool reg_equal(VuDevRegion *vudev_reg, =20 static bool vu_rem_mem_reg(VuDev *dev, VhostUserMsg *vmsg) { - int i, j; - bool found =3D false; - VuDevRegion shadow_regions[VHOST_USER_MAX_RAM_SLOTS] =3D {}; VhostUserMemoryRegion m =3D vmsg->payload.memreg.region, *msg_region = =3D &m; + int i; =20 if (vmsg->fd_num !=3D 1) { vmsg_close_fds(vmsg); @@ -841,28 +839,28 @@ vu_rem_mem_reg(VuDev *dev, VhostUserMsg *vmsg) { DPRINT(" mmap_offset 0x%016"PRIx64"\n", msg_region->mmap_offset); =20 - for (i =3D 0, j =3D 0; i < dev->nregions; i++) { - if (!reg_equal(&dev->regions[i], msg_region)) { - shadow_regions[j].gpa =3D dev->regions[i].gpa; - shadow_regions[j].size =3D dev->regions[i].size; - shadow_regions[j].qva =3D dev->regions[i].qva; - shadow_regions[j].mmap_addr =3D dev->regions[i].mmap_addr; - shadow_regions[j].mmap_offset =3D dev->regions[i].mmap_offset; - j++; - } else { - found =3D true; + for (i =3D 0; i < dev->nregions; i++) { + if (reg_equal(&dev->regions[i], msg_region)) { VuDevRegion *r =3D &dev->regions[i]; void *m =3D (void *) (uintptr_t) r->mmap_addr; =20 if (m) { munmap(m, r->size + r->mmap_offset); } + + break; } } =20 - if (found) { - memcpy(dev->regions, shadow_regions, - sizeof(VuDevRegion) * VHOST_USER_MAX_RAM_SLOTS); + if (i < dev->nregions) { + /* + * Shift all affected entries by 1 to close the hole at index i and + * zero out the last entry. + */ + memmove(dev->regions + i, dev->regions + i + 1, + sizeof(VuDevRegion) * (dev->nregions - i - 1)); + memset(dev->regions + dev->nregions - 1, 0, + sizeof(VuDevRegion)); DPRINT("Successfully removed a region\n"); dev->nregions--; vmsg_set_reply_u64(vmsg, 0); --=20 2.20.1 From nobody Tue Apr 30 12:16:19 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=fail(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1642393151; cv=pass; d=zohomail.com; s=zohoarc; b=IspBNXOFhXPOqnYzkeEfmP7TZX9vNm+ITkKbiyfWywH9wuijNE7Rw294qIpAeOFnH55D2AITBTB0qPBk7zqTCUZDSC3nC0bsGJ0cmmt6wfldWBIQQTIjMv9GmyeZC0ND0de00JQgri4h5RPWpE+8Xf4rfvqeQSDgPgr6hElXD3U= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642393151; h=Content-ID:Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ntUOdEHzsaOY78kdSbKxbEuBjHHqoZPjDrvgo2JQr0o=; b=gZnDuYuACW0pNMgPdgdO3R+RTOoyu5B3Fig2IkDMoKFGpZ9aubj5kyGVcStl+IkK7G05vBWsv5PDyqAHlwfAujwKh8KPoSgYeR5zs+6xrJd0wUodvasqUyAbwXBhf1V9Vx/INmdD1ZcZmqT001GQ12W2hwSIoN2gjMnWUzhxtAU= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1642393151540337.46401949884944; Sun, 16 Jan 2022 20:19:11 -0800 (PST) Received: from localhost ([::1]:58924 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9JU6-0007YW-Cg for importer@patchew.org; Sun, 16 Jan 2022 23:19:10 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47300) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9JNo-0006lX-Ld for qemu-devel@nongnu.org; Sun, 16 Jan 2022 23:12:40 -0500 Received: from mx0a-002c1b01.pphosted.com ([148.163.151.68]:8520) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9JNl-0003Mt-OB for qemu-devel@nongnu.org; Sun, 16 Jan 2022 23:12:40 -0500 Received: from pps.filterd (m0127840.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 20H3I4GS011096; Sun, 16 Jan 2022 20:12:35 -0800 Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2177.outbound.protection.outlook.com [104.47.58.177]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 3dkufw2hf2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 16 Jan 2022 20:12:35 -0800 Received: from BL3PR02MB7938.namprd02.prod.outlook.com (2603:10b6:208:355::20) by BL3PR02MB8018.namprd02.prod.outlook.com (2603:10b6:208:359::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.9; Mon, 17 Jan 2022 04:12:33 +0000 Received: from BL3PR02MB7938.namprd02.prod.outlook.com ([fe80::4ce1:59d7:578d:7e75]) by BL3PR02MB7938.namprd02.prod.outlook.com ([fe80::4ce1:59d7:578d:7e75%5]) with mapi id 15.20.4888.013; Mon, 17 Jan 2022 04:12:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=proofpoint20171006; bh=ntUOdEHzsaOY78kdSbKxbEuBjHHqoZPjDrvgo2JQr0o=; b=oVR82AP35Qba4NvYr4OmqmwudONbXsMGp3j/BRQ0pJaTW6WbYVf2FAlwqQcAAaAO8LON T0cJ+zneXyBDVLKvGslz92VltWlXbpkUKp36yrgM3Tta8JqptoIOL1oxwQLqpu1rnxkr Sh1qgQwKLs8irKvm3nM0SNEunQcr4GBPYuPayG59Z5VpjexFas0ELYhZp8YJ7kp820aM pmE+MoNHf6Y6PbftqGNIJnooaiolCZo1q0PKAPGEFpzzROZnsIg1WTsVTGZRFhBfeAwE PQ2JwxRNLtQztOQ5c8ESCryL24s3Fcr7AEG/I2ONUb+ii7XCVyK+cpBR0GQlVJ4RbgNJ jA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J71NLPsb+EnwbU2gX50iizdfVePzgOjP2jqqRBjgxuh9FJFhnOPqvqdKVGZu0pY+qYwvnicPyHkVsJZXYtae8jIolSZ98xu2NIpkvyFETp2LFF30cZHVw/Rcezoyvu8IZTVGl8DCGUEl/2t+nXJi3uMH/GsHXSriCP0zg+1tzWHgPEi+bj7u4LOpNCcvhXAqDm9pvQt4h8z/Fh+yoxw07ZR/Xr3/Ad0I+jesAK+7DXivh9eI3HogTKZ4JSu/AkLBIX+ntGsBUzLByQ4sRUcQgRaiucA1g2zArc3BtZUfrBUhk0MfA9rhl63ALLYwKU5sXAFBQsCF5XHl9J6SLqT/8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ntUOdEHzsaOY78kdSbKxbEuBjHHqoZPjDrvgo2JQr0o=; b=eVo5KH88HQeyPCiaGkfotzlwF2O448uIb6+VYP/TdzKnPxInGiDu6fyIlxxcjfsOaT5fGSjUxQ0YrNpVFgVY1P0mSYmRzdm8WRghbCXfIPMe76gqpuLM9YDZsrOSbs83joU9B2x384eQahHRGDjRGLXuGuZGuEpmYthSakyYkqveEnvtWuNJD324+KKd0M51L5m9XKeL9wgxjOc8hjcyU4YA8HrsnbtWqzysF5ezlHhQ4g7X9L91ZUhckdK0gArY6lL2Sk9NDqk82AdUpNQVUzay4UatF9ci8Sk/iYQmCIf0PEsgwMDzFAoYiClWb9zxiJRLhyX78AUF1kRFrZnliQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none From: Raphael Norwitz To: "stefanha@redhat.com" , "marcandre.lureau@redhat.com" , "mst@redhat.com" , "david@redhat.com" Subject: [PATCH v3 4/6] libvhost-user: fix VHOST_USER_REM_MEM_REG not closing the fd Thread-Topic: [PATCH v3 4/6] libvhost-user: fix VHOST_USER_REM_MEM_REG not closing the fd Thread-Index: AQHYC1hzhTdPV+Hio0Of0p9AfUTQhQ== Date: Mon, 17 Jan 2022 04:12:33 +0000 Message-ID: <20220117041050.19718-5-raphael.norwitz@nutanix.com> References: <20220117041050.19718-1-raphael.norwitz@nutanix.com> In-Reply-To: <20220117041050.19718-1-raphael.norwitz@nutanix.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.20.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 071fdd94-bc63-4f09-a5ee-08d9d96f9670 x-ms-traffictypediagnostic: BL3PR02MB8018:EE_ x-microsoft-antispam-prvs: x-proofpoint-crosstenant: true x-ms-oob-tlc-oobclassifiers: OLM:3276; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5Pa9eU2grN5KrosL3BCb0T1ovpOQOnoxvDTSfBfitk7NLgwmq1PSAtpJfO/iGoT+UjLXLMjc091SQOiWaa9rbICMyONaV2nu9AjoFPB2JibW0qMDmkmGsL9OmeV6Lnpv4ZUOFx8X8iXxiX0JFmZQ/xLMrYhV3mFYHo5fIdt+eQu0QBqR6wju/gFurvQUIPRSJVrT40yusSoJhZOQyrtG5rs+/eWFRIKEm39cRcMDlNkpcJKvTOmXEj78ZSloKnTlV7zORrorm/Wjk/6QAhjygQa9g+N/Km8zsgU8ie0+wlwW+gK6eBcp2Z9k0lFjBYOajNP0nOlJkLWsB8I5T2lYfqyRA9SQOYqVAVG7JlxAoJgk5fPYvPfSADt2GKaefVIBjS9PM+4CAyIdds54DBqONLsdno3h7rNH5Rted0AF2zx82n/0PFDdv9dXg3xya+QR93jlrsAitnhn0NdrK3zlgmgwEmt0eISFjW7Im7HqQWFO7WS+N/n/0ocrRWGfG7/bEmo5lFe4n7M70SrXh7wTa9jA6xWL/3GH0IdDz2xFEV7MEpN7dIES26EESdZIY4cyja42b/QE4/1L/p/DRsfpG9F2w4myLPC0XtmyXK3SLQ5fi2p/5lK2TkJR0NpSjEKQZ+A4EqvFUhLL0HPvZKpiXuwQgk6gBKEFTr/legq0+K/oQeTWigt6K/1COgU0Xn5Wb3A5RWVm9+5tru3V4fS39Q== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL3PR02MB7938.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(38100700002)(508600001)(4744005)(66946007)(1076003)(316002)(71200400001)(64756008)(83380400001)(36756003)(8676002)(76116006)(66446008)(66556008)(6486002)(66476007)(86362001)(6506007)(8936002)(44832011)(2906002)(26005)(6512007)(5660300002)(4326008)(38070700005)(54906003)(122000001)(110136005)(186003)(2616005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Qk9DUUVqR1VRalR2bGRlYmZaVitSTGlBS01MdXZielE5Wk5kMkJGTHhMZ09y?= =?utf-8?B?T1JNdjEyZUlSNFdLdHBTc1MrUys3MEdKZm14VGJ3bDBybWEvOFpDaU9VaWht?= =?utf-8?B?TWlvWUFlQkFqM2Z6MWFlY3c0UFpSOW5uRVR0aDNpbVFaQUJUQm5TVkZRQUVR?= =?utf-8?B?K3NKckVBai9SZitUZ2tzNk9OTXV1aFVQLzNPdFBRejhvN3lKRzg3ZEFNbHpa?= =?utf-8?B?YTBOQm1wUEJCTnV4ekdMWTJqcjFqaDAxczZhaDFlTjlnR05FWjZSR3haa3Ro?= =?utf-8?B?cEFyUzB3dzI0cDZEQmlMT1hRNkE0SjVOZ1RyOWx6UG1QaG9zRUR1Vm9RR0FM?= =?utf-8?B?M3JucTFKa1pQUmdQSS9mVmNNRzRiRGp1Sys4R0h3d3orRnZNdGpYK3dWdjVV?= =?utf-8?B?Y1NvNGs1MXQ5WlROVWxXSWNyZmtabTRvQ3U0eHdwbVVrSUVnZWxnY29IcmpH?= =?utf-8?B?Y3ViVnZBanlmZWlwbWxkSXQwN1REdDMyVUJZUGdxRlJlUVp2ZTJWRUdrU25w?= =?utf-8?B?SVg4bU9CUnhhUmlQUUNBcU1oUnhrTm9reHUvZU1pWkk2TzhhZkVDTGhwTlcy?= =?utf-8?B?OEtSVkNjRFdlZTlxU1RBRUxhWFp5NmJIcEdJV0RDUFRGUVVzbGorY0ZZL0Y1?= =?utf-8?B?THZ2ekphc2JVUjNLYkdHRXBLSWltWnBka0tYZGJmM3FrV3B4NlpBa3VoRDRj?= =?utf-8?B?dWdIYzloL0hUbzI3dGh5ZnlodU4vbDEzS2NjY0FiTktZWnRQQzRubTdVNG5v?= =?utf-8?B?Q2ZiWDNoUmQrNHBoTnNXNy9janBwRXBSSkdIcG9QWVFKc2VyVGdIdDNVN3ZM?= =?utf-8?B?TktPTjZmeEs2RTY2OW5QMjNoVFAwbkxyVkFFS2VHb2RUVDI2c29Pb1B6RGov?= =?utf-8?B?TEV5SVNoRFc1emQ5VGhPM0VrNzlXZUdIOFlpRXBtQVl1OTNyTDUyRVFJbWUy?= =?utf-8?B?T28xM0EzTnd4UlUyNk55RDBqMkp3Q0UraFB2ZFV4L1dWb1IrMmM5amVLeWVp?= =?utf-8?B?WElDK01MZE10amRYYk5jaVcyT3NyZkRubVFwampOMUxCd2dTUUtEMjcwWFlL?= =?utf-8?B?OU1kSTUwdXV0V1FveXFpSERHa0g0ZUg0L3VGTDJOSHo1c1MyUXllNXhLUHBB?= =?utf-8?B?bUNJMGh5U3A3Y1FVNjFNNjJ5RmJGb3R4b09udEZwRWRlRHUxdm1tbjRLMmpy?= =?utf-8?B?V1c0SUY2UWN6Q01RR2tEcFBzaGhoKy91eG9iZWJJZUdTelNxRGEwaXBHOFE2?= =?utf-8?B?Q1ZwVkYzTlUwSDBRVUxWRDl3SFkxT0MzNGR4RnB5dHlZZzlMMXp4Q2lua0c1?= =?utf-8?B?NVMxS3pGa0UxVE1NOUtYMEdoMVRjenNHcVNKUGtCUnQxSFNMZzA5djJuUkxk?= =?utf-8?B?WjB5eUlIYlBrWnVwSEVSSG1ZdWIvZ01qbVY2L0VkeGVibGJ1djZiN0FtYS9v?= =?utf-8?B?SnJlTGJrTjU5a1NhQTJZclJNajEyRDhNdHBpOEVuYXpUc2xYdEdvTnRlVkRz?= =?utf-8?B?eDg1WGhlcXNFTHNpY3BudUpkMVpYSUhwUHB0dDZOek9VeGNrU2lLY2YyaEVV?= =?utf-8?B?QXNCL0JDY2pCYkdmZitIVUtpVGJ5cGZjaWI3WnpqTXZJMzlNRG95My9CL01O?= =?utf-8?B?eHBUSkpFRlJYbHJYNUt1SkJ1TjRzcEhKMGthZ0RkNjd4bDlHQWtJV3VvVGNl?= =?utf-8?B?T3AyTWJaTk5mcS9YL0h1SHdVeFFucndpdjI1cXRYU1FsZHN1bnQxd01saVdy?= =?utf-8?B?N1lqNXVISGVGZ1RLQ1F1WFZIWTJzTGFUbWxYeEhkdHdhUVduTUlyNFFRUk0y?= =?utf-8?B?S09qKzI2aTRBMVh2Qkdqa0QwV2tqOEk1NzJWMUhtUUVGZnJ1bzVhZ3BvWW5F?= =?utf-8?B?bFdDbSszejM4c2VnajcvYkNNc0dlcXN3enFneGRKVC9RRHNUYXgrZDZaZWUw?= =?utf-8?B?SC9qU0wzUXpVdUxHYXY1ZEhPdSs2QysxZmlYTnNGZzBYQlpPOHJQeVU5Nm81?= =?utf-8?B?U3VaaFNDYkFMaGxZWlpmU1JMdmI4U2RiK2g3eUZVTU9HV3VqQXptSWlOQlhu?= =?utf-8?B?TzVQWUd2SlNmUlF3S1BoYlVkM0JDVkpRZm9rdThCeEZIMmZ3Yi9uMk50amdh?= =?utf-8?B?L0FHUTg1TDNwRTBSWXNsSThYSFVIZnlkTU9ERllZSnhzTXdEWjFSL0xUdGhG?= =?utf-8?B?NG5PVHQwREZrMGp1TG1ZL1FkME92QVJOT1FZem92K2dabWdsWVFLMGRBcVpW?= =?utf-8?Q?H0iqd5iSuP3Wkpuquok7r/jrS2Zwf56PelJ5tTxelc=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <0DE309A181A84B4D96A7705A703E5152@namprd02.prod.outlook.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL3PR02MB7938.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 071fdd94-bc63-4f09-a5ee-08d9d96f9670 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2022 04:12:33.7886 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: AddtD1LBAWzpG9mScpgURbPe7aMXSI4MYQtPj0rYn+1g4gu6Uyk03RhrIkDgftohx46xXk/oxGBgXNoiGIFUi1dQCRPo/otgsaZqczWBRO4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR02MB8018 X-Proofpoint-GUID: gT4SscprzXs-6jxcYGMQRtaKCxZ23eky X-Proofpoint-ORIG-GUID: gT4SscprzXs-6jxcYGMQRtaKCxZ23eky X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.62.513 definitions=2022-01-17_01,2022-01-14_01,2021-12-02_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.151.68; envelope-from=raphael.norwitz@nutanix.com; helo=mx0a-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "raphael.s.norwitz@gmail.com" , "qemu-devel@nongnu.org" , Coiby Xu , Raphael Norwitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1642393152335100001 From: David Hildenbrand We end up not closing the file descriptor, resulting in leaking one file descriptor for each VHOST_USER_REM_MEM_REG message. Fixes: 875b9fd97b34 ("Support individual region unmap in libvhost-user") Cc: Michael S. Tsirkin Cc: Raphael Norwitz Cc: "Marc-Andr=C3=A9 Lureau" Cc: Stefan Hajnoczi Cc: Paolo Bonzini Cc: Coiby Xu Signed-off-by: David Hildenbrand Signed-off-by: Raphael Norwitz --- subprojects/libvhost-user/libvhost-user.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvho= st-user/libvhost-user.c index 7dd8e918b4..3f4d7221ca 100644 --- a/subprojects/libvhost-user/libvhost-user.c +++ b/subprojects/libvhost-user/libvhost-user.c @@ -868,6 +868,8 @@ vu_rem_mem_reg(VuDev *dev, VhostUserMsg *vmsg) { vu_panic(dev, "Specified region not found\n"); } =20 + close(vmsg->fds[0]); + return true; } =20 --=20 2.20.1 From nobody Tue Apr 30 12:16:19 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1642392921; cv=pass; d=zohomail.com; s=zohoarc; b=ekIX+f4mnsO21pIeEP7E3TwmppkotaGw0f0+GE7KNMX+5Rv7Vct6hQseAMka96Zb+LilsHeqj+bcPouU2I6UA+HRfHIMy5W2gh8INs9Ip4g7HedkU7c710K7ow3T+1fCD8iA9g3P79/+Rrwh0ndBmEE8Av9pz6zqQ5cxX/E6j8w= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642392921; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jdBLatFfZQgIAeVKzCsuAft5+5bH67jwOxFnsHpVJUE=; b=TuazrurNSS2+3/YWZK2aeHT0xT/efZaQpGh47LYVsK/XUclxaSAFWX6BS77zeKGHpr+bApp/aSxyrA/u6qoy6NAmDGla8kJMvZibQh8Gu6eRXoGQ/jti2Ttu1jXpf1VHsgJ/eZ3GeZ5g+kGa4ACLJrT+8xsUCj8P762zk5Bl28k= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1642392921834850.3598304645895; Sun, 16 Jan 2022 20:15:21 -0800 (PST) Received: from localhost ([::1]:50974 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9JQO-00029D-J8 for importer@patchew.org; Sun, 16 Jan 2022 23:15:20 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47296) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9JNo-0006lD-Et for qemu-devel@nongnu.org; Sun, 16 Jan 2022 23:12:40 -0500 Received: from mx0a-002c1b01.pphosted.com ([148.163.151.68]:30538) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9JNm-0003Mv-61 for qemu-devel@nongnu.org; Sun, 16 Jan 2022 23:12:40 -0500 Received: from pps.filterd (m0127840.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 20H3I4GT011096; Sun, 16 Jan 2022 20:12:35 -0800 Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2177.outbound.protection.outlook.com [104.47.58.177]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 3dkufw2hf2-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 16 Jan 2022 20:12:35 -0800 Received: from BL3PR02MB7938.namprd02.prod.outlook.com (2603:10b6:208:355::20) by BL3PR02MB8018.namprd02.prod.outlook.com (2603:10b6:208:359::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.9; Mon, 17 Jan 2022 04:12:34 +0000 Received: from BL3PR02MB7938.namprd02.prod.outlook.com ([fe80::4ce1:59d7:578d:7e75]) by BL3PR02MB7938.namprd02.prod.outlook.com ([fe80::4ce1:59d7:578d:7e75%5]) with mapi id 15.20.4888.013; Mon, 17 Jan 2022 04:12:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint20171006; bh=jdBLatFfZQgIAeVKzCsuAft5+5bH67jwOxFnsHpVJUE=; b=SWJYXhf81IaWN0C5v1QfI1INKL1hkCDszzqRDYFh9I7DSiXfoKPiex3Tr2iydaB4xtfa TLkhJKOAiVpU4d/Q81F4d6cEO5SuxfD2ZykEDFcZmwz3x5xmZBhwVDxq/aAA0FhCr0Li nf8e353db+n4nvpFTHAyPiiHBtxUQ6b8rQa8oZ+ElIPn9T2hpejKa2+qumZF5T3Kl12U eSL19+9cpAFTgHOYmKOx+pLaeD1LgYo14JQQ2jyCv7QlfmcChhvnQWg9LTyUWVAJU33+ 7o6Bb4zrElmKXNbnbPb14G8j+cO3xYEk6W51mETE4VTXigwr37c+83Xa9kwXH/e2mp15 lQ== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VEgUjfbAWsyYLlIcqAsI2ZdkzXaNIFTnJMnwp+ZOOC4mPvV261uuNSkcaHfYsl0Ec2mBei4r3SuCAMSoarKmiorukkxsWheOj1vN1DOAIjhG7K9DRsMEiejQQaHVF687eGf+bSj/3ZRgMXmXaZp25oNx8hFn7kbd+ibMroYEElvFAaDqmKAqYC3FgXiZXmGMvnFvf4NK707wOqwXRmrHwPDhSwnKsqQlNI5JVQc0dtxjpMZiZisECrTDJBZ+L4CYrdt05B7u2O2b3r4opjl/l7nzF2ijSWTcpE4HVMMkOqvmjZ9EYlVxcdgZPfG+luEt4vPtAMihYT9jg3BdxYGw1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jdBLatFfZQgIAeVKzCsuAft5+5bH67jwOxFnsHpVJUE=; b=ofzBM6V41zBnYX+hFxWZiUa19qLMTCJ1KUct61U98IKiQnyPyM1S48PxGAzPh/MQEl1ohMnOxddIt9S2QzFRWjVSJ2Dg3zajvYRFin27A3y3w2TINTNKAWu3louneiMP8s20ncf+vll5Y0ZLpWmBvwfdJPSRKooWP3b+3zL/jWrNrIOPNxTuYqRM0XEuWpZEY2dF/BfmED3qL5kXR4xGhYp6Fz1ROXhdL92Y2ZoZVZ3t6rXJD/yJOx3HdrkfAWNcGe4aWzeGvxmyechoBbTe+gm7t2OEtGczY6v+gj/FPvlnu7iDiT7GoVhb+q9MrNoTYG5lKBXUiZwrh5mHUVHlmw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none From: Raphael Norwitz To: "stefanha@redhat.com" , "marcandre.lureau@redhat.com" , "mst@redhat.com" , "david@redhat.com" Subject: [PATCH v3 5/6] libvhost-user: prevent over-running max RAM slots Thread-Topic: [PATCH v3 5/6] libvhost-user: prevent over-running max RAM slots Thread-Index: AQHYC1h0Lmuup4pxo0qGaWbHhV/eVA== Date: Mon, 17 Jan 2022 04:12:34 +0000 Message-ID: <20220117041050.19718-6-raphael.norwitz@nutanix.com> References: <20220117041050.19718-1-raphael.norwitz@nutanix.com> In-Reply-To: <20220117041050.19718-1-raphael.norwitz@nutanix.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.20.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2f03a471-19db-4492-c052-08d9d96f9712 x-ms-traffictypediagnostic: BL3PR02MB8018:EE_ x-microsoft-antispam-prvs: x-proofpoint-crosstenant: true x-ms-oob-tlc-oobclassifiers: OLM:7219; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: knCkOcPcFQQK3i6e0FYNnnpmNgy+IZ75sgjEQU9XoVCqZoKd85PV9QIuk4xA0Flmxi2ve68IQKtjHqmT33rpSz6VNGiVrjB5LVctWW8whCo6zp10gbYAOQrt6uKA51I9IXwEK24VOfMdinBOJMcgM65t+zVdFUNnW/Oz4aZJCaSJ/BA+uZ9h4m9i5KB76aZV+L9WybabiQTtPG1surmxSgMk9dBkHJcv1RcjIeCJ5LXE+bMwzZBcNsnUajaYEoURpcXYN4pwrFXR1BULvfo1D9GU/RxSktqo/p/Y779kZ3shJfi8sYmpAuWv+LiQ7X4EsYuDCLY3QmLyNgP3UCee4RtDUAk9VMOwKcbkbwJiRV7sB6rP6Vq0V2yt34crMaWGrbAXaMuYo8Sfuq7jrUAwF+nZYO3WU33Al85akmocE4ySmxgTDOUMFzmALz313Cbhe+wBF8epd6l8beEhn3hmTsodASBenw3TjrxdfjC7zfWwUnOkIuy9Th5xRzYI9mAKw3asySE63aK9XmuNMm1WACsP8QcpFIaczogyMVSgaZr+JBpNeGmjgfHhj5aQryuGIo9ZgwhCpblmbJvY9QxDEwlCR/yUU+llSYEpJfD9hpZ9YO3n8Zko+w7fsJrCeUs/8RDzQ7Y9KWd5SEVWkaJkM8eVFT3Kwp8ZHtAyTptac6E5z8ac7EpFbtB6+isAWiqIEDuvAdJGEgbv6Te1p4M/lg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL3PR02MB7938.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(38100700002)(508600001)(66946007)(1076003)(316002)(71200400001)(64756008)(83380400001)(36756003)(8676002)(76116006)(66446008)(66556008)(6486002)(66476007)(86362001)(6506007)(8936002)(44832011)(2906002)(26005)(6512007)(5660300002)(4326008)(38070700005)(54906003)(122000001)(110136005)(186003)(2616005)(107886003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?ocb+zWXI57gctF6Bc/hYNBYagLAirs56/nxdyIUYpiQbjjBx2KCJPbTUTE?= =?iso-8859-1?Q?EwZ5trGMFs+Z6RH47wapC9+xkRZj/BPyT37V6yL6TAIZ1pX+aqflIsgPQ7?= =?iso-8859-1?Q?Qv30zIBbgKi3R2lv2vUgYit18aIbszWoJFVc1WVvMdNJ+uhLnlG/t6QtA1?= =?iso-8859-1?Q?L4W6Zgpclbp4IVykrmGnx8iuC4uK1fZ9yn6zd/ufJ6qvzmUsfoLoh9Su+t?= =?iso-8859-1?Q?oF+L2EUXJLEzHDCfMhziOFxAGs0Q6lkOG5zZE7Y7m0fi5CCsOnEJkYqvCy?= =?iso-8859-1?Q?I5IlbusiSy5U4syYUqrNIwvRq6345SscKTBEUjBCBu941JKC9OTS154k+N?= =?iso-8859-1?Q?pVMgDLYPuaxWA1ettlwEys4RuWl+lCm82H7aCyv70zUw962QVQph+gFGV1?= =?iso-8859-1?Q?T7NWIYuswmcXTda/p83yYLbzYTCGvvES9TAOzof3tRuYkWwHahnTJwwyWl?= =?iso-8859-1?Q?dTLPqQJsw3XgCrKbdmzzfbJTTj5UQ8SiFgen1kcaK42ql8toovGDBVvgvm?= =?iso-8859-1?Q?Luawx7b2b6owDGFIPlJd+837G+TGr3atBlwxTodwGb7yykI/0McM5HVpjl?= =?iso-8859-1?Q?gVnU3TjHa1bfBZei5eeG6AnulSLqTxrp5US+pyL7iBl47hLIK5AsLAI3U1?= =?iso-8859-1?Q?2dLVe7/5YVkbs7i+wj2y/s09M/dstPHOumZ5hwVd4aEU74iPESgWaLUC/L?= =?iso-8859-1?Q?B5t/y7iQefdLI3twR/AGVfnfCLzT+WYl05TM7p61FoGjTLH+2NwWt2PBf4?= =?iso-8859-1?Q?ETes7j6zFVJ81TfBYbGkyc8qef8xvwtSPNY+Wce0nud1ZAM8GaGcvNvdgk?= =?iso-8859-1?Q?BNRRAl3mGwKGMcuCocfCPHmRddtka3I35HyePMTwAu/8MSc7KPeHmQscEn?= =?iso-8859-1?Q?yspHDhxHwETs5bEEGu24v84iWST3E87oeTHsWbMKewsl4VnZ5IyhYFLYVs?= =?iso-8859-1?Q?W1Bcs+mPK+Q8yc47uAnNBQbwrK0z+mp7zLgnzmBBZsS+aOLWK5S1e+9nxG?= =?iso-8859-1?Q?FzYIsTEkl6BqsHfHNOXEtVCBM/TqMO0C1w/JKhF3FOdapEADbnI28AnJIW?= =?iso-8859-1?Q?mLrMcfj/ex/bqpFpciElpXoEYtm9yk89By3mq32HkkSEU1LnLyhVplq8tg?= =?iso-8859-1?Q?cuqCU+OSJLmt3e64JzH5dhP5NglsdzAqJUJ++JLtj9qALh2IjAI0RlOtv1?= =?iso-8859-1?Q?F0mXkt9Wn5mWZ5DbAn+lk/y71vt3xQucNe7FiSoZ5JIxsLbyKMJRYkCiYk?= =?iso-8859-1?Q?pI9cLbsQb93KNMhInibfpOOUlOpYHRDwy9Q8vVZrIXOj7/yYGb3WTLuE/v?= =?iso-8859-1?Q?HGt3NlFcQrGaoqIO7/5M9M8g2ttr3ft/3FYP13Skn1tzMwZBbDf3qZ9X2s?= =?iso-8859-1?Q?uh6xqQ1MLi0uoBUzbNtqIFLlatnY6vL1esAn4dV8JTt0bpYwtggh1Jei5z?= =?iso-8859-1?Q?ZKiizq1aDxFBS5FjzKLTqrwDEgMqx8fwB5YokfgqQ9RGuKtnaQhiFrAvKc?= =?iso-8859-1?Q?TLhUVmzdtRVSmpA5PXtgSUD0mLfR1uvYibLvqFj70tapqIk3bblb1NQjOB?= =?iso-8859-1?Q?0OtXpqC/3GGhgy6UWzypo6GoT7K3iQe+mJ07g1BCaaa5ru7H/kCTOPFGjv?= =?iso-8859-1?Q?S5FikDUqdttRqzw/dw7QNot7341meIqif/LRTAMrtw4Fpo8u+bRKt6wUZU?= =?iso-8859-1?Q?aNNZAUTtTcujjbETkpheJjvEKve8VzP94xGFo8P4n68O4oD5vuh8ldcfkS?= =?iso-8859-1?Q?FL9zIaP+pgzpm7hIlsUsyS8Uk=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL3PR02MB7938.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2f03a471-19db-4492-c052-08d9d96f9712 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2022 04:12:34.8039 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: IwaXOSNiRoowjDUzmC5TyhIeJe5NgJiszP8AM0IgleX28tIufaMKJX1quoBYKWb93pK7T/1ZpOZvA++1SlZ4BQuXZ16V9lBURgq/PINs9+Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR02MB8018 X-Proofpoint-GUID: yi0k7HknDm3XQnIsUlUDMRQ7Xp3EAJai X-Proofpoint-ORIG-GUID: yi0k7HknDm3XQnIsUlUDMRQ7Xp3EAJai X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.62.513 definitions=2022-01-17_01,2022-01-14_01,2021-12-02_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.151.68; envelope-from=raphael.norwitz@nutanix.com; helo=mx0a-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "raphael.s.norwitz@gmail.com" , "qemu-devel@nongnu.org" , Raphael Norwitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1642392924061100001 Content-Type: text/plain; charset="utf-8" When VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS support was added to libvhost-user, no guardrails were added to protect against QEMU attempting to hot-add too many RAM slots to a VM with a libvhost-user based backed attached. This change adds the missing error handling by introducing a check on the number of RAM slots the device has available before proceeding to process the VHOST_USER_ADD_MEM_REG message. Suggested-by: Stefan Hajnoczi Signed-off-by: Raphael Norwitz Reviewed-by: David Hildenbrand Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- subprojects/libvhost-user/libvhost-user.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvho= st-user/libvhost-user.c index 3f4d7221ca..2a1fa00a44 100644 --- a/subprojects/libvhost-user/libvhost-user.c +++ b/subprojects/libvhost-user/libvhost-user.c @@ -705,6 +705,14 @@ vu_add_mem_reg(VuDev *dev, VhostUserMsg *vmsg) { return false; } =20 + if (dev->nregions =3D=3D VHOST_USER_MAX_RAM_SLOTS) { + close(vmsg->fds[0]); + vu_panic(dev, "failing attempt to hot add memory via " + "VHOST_USER_ADD_MEM_REG message because the backend = has " + "no free ram slots available"); + return false; + } + /* * If we are in postcopy mode and we receive a u64 payload with a 0 va= lue * we know all the postcopy client bases have been received, and we --=20 2.20.1 From nobody Tue Apr 30 12:16:19 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1642393283; cv=pass; d=zohomail.com; s=zohoarc; b=fyQ4BJnXzpj1TOKABJqJGBdO5FcBxQpDMq4Jb/aINsJBvQwoiEmAuZ0a+IalIV5lhVOfR/zqFd5QjeQ1JQFe9SoiroORil7O3V5Op7/oIH7p5e50zLDcIAbXYCiW92sQAnUm9ptLim2NVz+PZXdD65+RV9GBQtCQMdjO775Bb0U= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642393283; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NtM9o550nUP3yb93VP2RWhxfXwHcdlYOhpQg1QJie10=; b=EWKx/6ar9Qpo+bf3wg7uVTO4ig/Iun2f3QO1IJ2f9YoB4makj/qt1sDR/vVJcMn+EWYSi3P5BpdYTIEvgJotFDGfJqf+ZWBoER+tGQOhwYj5XzK6JcXk0Je6drlPpxfTzxs6COMtfv5gR79MeJ/5gnh8FqowBQi15nf7H3bTaUY= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1642393283240533.3758766922635; Sun, 16 Jan 2022 20:21:23 -0800 (PST) Received: from localhost ([::1]:35066 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9JWE-00022l-8S for importer@patchew.org; Sun, 16 Jan 2022 23:21:22 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47328) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9JO2-00076o-De for qemu-devel@nongnu.org; Sun, 16 Jan 2022 23:12:54 -0500 Received: from mx0a-002c1b01.pphosted.com ([148.163.151.68]:61404) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9JNo-0003N3-K7 for qemu-devel@nongnu.org; Sun, 16 Jan 2022 23:12:53 -0500 Received: from pps.filterd (m0127838.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 20GKxQNx032449; Sun, 16 Jan 2022 20:12:37 -0800 Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2173.outbound.protection.outlook.com [104.47.58.173]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 3dkxq1tagf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 16 Jan 2022 20:12:37 -0800 Received: from BL3PR02MB7938.namprd02.prod.outlook.com (2603:10b6:208:355::20) by BL3PR02MB8018.namprd02.prod.outlook.com (2603:10b6:208:359::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.9; Mon, 17 Jan 2022 04:12:35 +0000 Received: from BL3PR02MB7938.namprd02.prod.outlook.com ([fe80::4ce1:59d7:578d:7e75]) by BL3PR02MB7938.namprd02.prod.outlook.com ([fe80::4ce1:59d7:578d:7e75%5]) with mapi id 15.20.4888.013; Mon, 17 Jan 2022 04:12:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint20171006; bh=NtM9o550nUP3yb93VP2RWhxfXwHcdlYOhpQg1QJie10=; b=YWxMM7JeUAPVVX9gaK1n1mP0LpbeOIAvMgmZmm1EQ66HVG7fEmFyIcNrcubHXbPGVRZA iYWnOlr5fSQ44MPATbE70xWC64ZPtDYLgMs/kGWZARQGD3ddQNrcolWRMe+xU/HKbNJq kfkci7lJAPG0NDD6w8iRlFTSWOJ/Kk+eBE5eXL5UTei+1YmcW4bDeNLYU+h0FvpQP7nW hNlotRPelVdGr19WZ6ryiO6RiSqaCOCPDllRCe5XhMt/w20cGa2TDg3HBo5B56aHGJFu wFNaLBQpf1tlSan8AR9cy9qxFak/8BDmb5F/qZ+Upnna3/Bxcdf6dYFDHebWFKtzNAmZ cQ== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y4IZXu4b2C/fuymeM9Pw2FGPreppn1c3lvgSuhSMfbxjqM/+tmQFhllGiDK8TGcoSDZIVnYAaNJwRIN9/bRMDLSosk4V1JgnQtKqlXUL/3hU6vPfJ67OL5lJR5PF6Rq5fgNQIzRWvIPjYyNGIq5DdGgHgZk+rF/7N7q1F7xxjPYiz5Hz/8re3SkEXxhz5Wlne/FPxRoXmiL9oOSy1nRHqIYoCjxPVrqEhFzTUNKrlbMUGAKap5qrSAvtd4fT2HE2SXQhmbS12IBkZd7K2OZUPBeORAYF+RSyhYErmtLh51FX+LUrz08EnkkveQUNk4fUdDmrO1iXPryk7RKI+/pijg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NtM9o550nUP3yb93VP2RWhxfXwHcdlYOhpQg1QJie10=; b=mEE26R7obC47whfVnDATfudltosSP76kPlMfngPaoRiFOZ7Wt7CXoLUa3aVnyAH1M59i8Wcd3FPoWLcwcoByJK64VSTrQhEDeFnK6aItowYoojBzUR+yCGM3mVuSbD/XzibuxLJb0sADFsaj2v5akbrdESo41CAm9/9OGwOSQBvtEpFoIVKPsh8ImnpjHDGyQR3EQN6bu05FkdTx9yXFEPsQ70bV0eKq6Zoy87wqMukjKdkhfay9LjmMEWi/SHK6PxG1tnuEvVGCk1Aa0KxNPTPZMgpX9iXYlwGgDBlcp1mPzSO69mdKPOXdmxSaWwNExGfcISLp6YK8T2DmRowHnA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none From: Raphael Norwitz To: "stefanha@redhat.com" , "marcandre.lureau@redhat.com" , "mst@redhat.com" , "david@redhat.com" Subject: [PATCH v3 6/6] libvhost-user: handle removal of identical regions Thread-Topic: [PATCH v3 6/6] libvhost-user: handle removal of identical regions Thread-Index: AQHYC1h1GoOP5FV9bkuu4JxnCe3gIw== Date: Mon, 17 Jan 2022 04:12:35 +0000 Message-ID: <20220117041050.19718-7-raphael.norwitz@nutanix.com> References: <20220117041050.19718-1-raphael.norwitz@nutanix.com> In-Reply-To: <20220117041050.19718-1-raphael.norwitz@nutanix.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.20.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 584de1f3-3c89-4f3d-0475-08d9d96f97b5 x-ms-traffictypediagnostic: BL3PR02MB8018:EE_ x-microsoft-antispam-prvs: x-proofpoint-crosstenant: true x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: O68tfmaEAao3Jz7/sTwhvfLPDwmX+9DSf87VWEHZQNFeWRGLPY/qw1GKq4sK1Fm++mZ/2m3Eu1ASGUoZSybP/o9S10UXbbiuaBc0WEAqG6mja2u9sa3XpBxg9faoTxDkAvU2a9Jk4C3Pb5Kj9h/pnJytIdOyWlihXTh2yn1axS+UQbU6ev72TxGERW+CedoCIzQoMEPzThINsPgXpvj0eXbeFBppf5FqG2ViAvt9xZ0u04PgMhfcZYGQkOJHwlbxr9eyDun233ZxDACD4QVpvZMMY3/Gnl3/NpRR4LdwVdOu2/oYULqP06t/RCQcfZN036HWksAT3FM75LmaOIkb3az2KRrnc6BBTNoEekXRqb6gzatvpdjnnay+xSJK5KY39HeQ4jlc7CJD5OYXW5Aq1E4/OGqPPzgDTtoJvW/LdFqu4vW+o3FYshHIxFbsJV0I+zZBu6suBpkK6JVJGJdl9mbkjFzrCdv46ivJd0ounnPqEcw02csklsnbJ4SKI6Xp53D5xKsW09/1OQqpArKMkskG6QXvyX2uR23TZQbKen/KiY+t9H4yL4na8gmykBqi6P8AY4H1vM2aZ4Gw2B9EDRHRM9MSsNSJFcNtzT5b8mQ6e/DlpFKXtbYflfQlBMgK5FPF6I52yVaE7p/1UMhMn+VisxDo+Vfq3TtfUFne9vfBquTlXXjfUSitvhCPCmMqSJvft6HHxpMbyDRNrXpSVg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL3PR02MB7938.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(38100700002)(508600001)(66946007)(1076003)(316002)(71200400001)(64756008)(83380400001)(36756003)(8676002)(76116006)(66446008)(66556008)(6486002)(66476007)(86362001)(6506007)(8936002)(44832011)(2906002)(26005)(6512007)(5660300002)(4326008)(38070700005)(54906003)(122000001)(110136005)(186003)(2616005)(107886003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?hd1FEM1lyP33b/TrYD8QD7fyAOqj32b/P5DE+iScNdq4Ni7DdipcK4oZlz?= =?iso-8859-1?Q?R3vrGoAW+Dn3IIdRnfleDrjLlb0LBfuddnDdL7JY4xVDEB049xkXtV4dS/?= =?iso-8859-1?Q?cP6JpMgUPiMpq3JsEXBfCc5iOB1/pJ9vTyPSkANmEgEWf+OqceM3u44DTZ?= =?iso-8859-1?Q?LSNWLzIwiQM9gwS0xEeKIRjDITO/Dj4USxmmlCvsUyC8E0LCvJ3tWPCpg1?= =?iso-8859-1?Q?esO2lcEva3jAAFEjEMzv6RJWBqNzDUM6XoMQGm6RMAXaHJEQjIJlbY5tEA?= =?iso-8859-1?Q?MpC+C0/42f3Jzea+B8M/NGOVY8fZwIAVd9vX+k02DCMXu0pjMP/6eCx0vZ?= =?iso-8859-1?Q?EK+r8Rxebx1J9CM0iz5lBhFubEtsmSBBatfOnAXKO0FECMMFFCBRfxxUHz?= =?iso-8859-1?Q?GBm0xXl/ktXxdnbGKFcMpqhNUCCCUKO0akqQ+dLzm39oZUzidJWKwI4CIv?= =?iso-8859-1?Q?JssET3ScK1JQlCRLXCPYd2afrFXpXJ0y9IFyvNwK7DeV4fRhuSujbJ71WR?= =?iso-8859-1?Q?htMVoBeSttDkKZH+Ov8EJUUE9dK9gdPozNVvn6fCgHtP7KImqx8wl1nP5W?= =?iso-8859-1?Q?TjbNseqTie8nVe5BPmfoCFklglamzBvBg/uhnVOyPeQLB5XxxeXbInLIiS?= =?iso-8859-1?Q?bDvL6MHK5dMz9mCw2JVOjih+mTii58bQ9VZ/BlhXYskKYDvCZLZaACqoPu?= =?iso-8859-1?Q?W4xeq13M+EUwOGdh67twGxqIoB3yOqwfsmGnOFjxL3N9eunU4EBTKCyQf0?= =?iso-8859-1?Q?If99whzBGQMluhbF98qKrmxXxnC0FOwJzUcdRAMSOdCRKFiU8yWXQtl5gO?= =?iso-8859-1?Q?jC3nMOE8G0IquHtZ7vbrNy/DkbPIS5yscQWuBK9S28Q1CMmDLnM/EguiMr?= =?iso-8859-1?Q?ifu8UrRCEneEls5p9ifA6TEgxzkj1p3PVIEstYTbYxbSfT7fCQbTYJKIuA?= =?iso-8859-1?Q?P2wW6xHfFSOjIpqvHnMT3gfp+Y4Js8jMOJgedvQjNMgAJCL+GowX0zD0qd?= =?iso-8859-1?Q?k8eD1y4dj07cIedmuv7x/mUSrPpkussUIWziJfy49jL3653jUl5yKtFcoE?= =?iso-8859-1?Q?JVapjywidcf9fD+zjDuvVDJawt0o6U51OlW0N0p83FLxLtrHZAMnRWaVWd?= =?iso-8859-1?Q?4QIfVm+jnsxLQVh9OPBeZ6e+ojTczOSlL9WsPT+11s3flTFx+THSraes3y?= =?iso-8859-1?Q?6hernZvtj+XwFTIn8CCXTaq58YhVUmrCYr5Z24zNxVKwURksDq9xBlMW7T?= =?iso-8859-1?Q?+4d3Fb9nRAgt41WUAP5M9K5dbcvKJSsLisAQrJgdUCwgbmGFrE5nfjuS8z?= =?iso-8859-1?Q?avUlCPYvuOdgoHP1kJrOecyMvBcSdCnnj+YRwXiSXuW6MyXO9J4uID+YXk?= =?iso-8859-1?Q?NsCZUnesza6ktNe+f+uV7NrOeTkwJH2IhOTrpvDIkbs1wmn7vZVgiDpuJV?= =?iso-8859-1?Q?ryJ+8uHnqnRoJdxzyL85wSwmrlVtELmiBGpPMNdtysmAqbTXU8aZTeOjEW?= =?iso-8859-1?Q?K0slr2Bs1D+Ggl8F/jP5wvoF63HnWKvowKR0GaXktGoYoX5LD2JqK4i/wn?= =?iso-8859-1?Q?YlIhUhyIYZmVruc2oNucHFtPY+WUEdhLLlbcXTuuj6zoLiWRdZyC48jFFQ?= =?iso-8859-1?Q?sG2Q8v8HdhbFAxyRvlc9KE4Dh/V4U/F8CKPSzVd9LMiHHLWVg4E5rdo3cF?= =?iso-8859-1?Q?6wKPT832/DP6H1Vi90a6WL0vwYGSyp7fVNZOeD3Z4Nz0nMFMK0GJhAC5fy?= =?iso-8859-1?Q?OdCrmihwBGrXh9KBLhMHQlqUE=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL3PR02MB7938.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 584de1f3-3c89-4f3d-0475-08d9d96f97b5 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2022 04:12:35.9143 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 6M12pk7LDBhI82MxrSqLzstzzeQQHTIImrVgjbA3xeHeDfc1QSeFW4E/Fw9uhss5hEXBbgzLqEMiZBVeLgD3Y1TupMhckhLc1xORG31wTmk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR02MB8018 X-Proofpoint-ORIG-GUID: 2FgkBzG0XxhQVHzUhBSz_VT6rNk1VhV5 X-Proofpoint-GUID: 2FgkBzG0XxhQVHzUhBSz_VT6rNk1VhV5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.62.513 definitions=2022-01-17_01,2022-01-14_01,2021-12-02_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.151.68; envelope-from=raphael.norwitz@nutanix.com; helo=mx0a-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.7, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "raphael.s.norwitz@gmail.com" , "qemu-devel@nongnu.org" , Raphael Norwitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1642393285479100001 Content-Type: text/plain; charset="utf-8" Today if QEMU (or any other VMM) has sent multiple copies of the same region to a libvhost-user based backend and then attempts to remove the region, only one instance of the region will be removed, leaving stale copies of the region in dev->regions[]. This change resolves this by having vu_rem_mem_reg() iterate through all regions in dev->regions[] and delete all matching regions. Suggested-by: Stefan Hajnoczi Signed-off-by: Raphael Norwitz Reviewed-by: David Hildenbrand --- subprojects/libvhost-user/libvhost-user.c | 28 +++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/subprojects/libvhost-user/libvhost-user.c b/subprojects/libvho= st-user/libvhost-user.c index 2a1fa00a44..0ee43b8e93 100644 --- a/subprojects/libvhost-user/libvhost-user.c +++ b/subprojects/libvhost-user/libvhost-user.c @@ -821,6 +821,7 @@ static bool vu_rem_mem_reg(VuDev *dev, VhostUserMsg *vmsg) { VhostUserMemoryRegion m =3D vmsg->payload.memreg.region, *msg_region = =3D &m; int i; + bool found =3D false; =20 if (vmsg->fd_num !=3D 1) { vmsg_close_fds(vmsg); @@ -856,21 +857,24 @@ vu_rem_mem_reg(VuDev *dev, VhostUserMsg *vmsg) { munmap(m, r->size + r->mmap_offset); } =20 - break; + /* + * Shift all affected entries by 1 to close the hole at index = i and + * zero out the last entry. + */ + memmove(dev->regions + i, dev->regions + i + 1, + sizeof(VuDevRegion) * (dev->nregions - i - 1)); + memset(dev->regions + dev->nregions - 1, 0, sizeof(VuDevRegion= )); + DPRINT("Successfully removed a region\n"); + dev->nregions--; + i--; + + found =3D true; + + /* Continue the search for eventual duplicates. */ } } =20 - if (i < dev->nregions) { - /* - * Shift all affected entries by 1 to close the hole at index i and - * zero out the last entry. - */ - memmove(dev->regions + i, dev->regions + i + 1, - sizeof(VuDevRegion) * (dev->nregions - i - 1)); - memset(dev->regions + dev->nregions - 1, 0, - sizeof(VuDevRegion)); - DPRINT("Successfully removed a region\n"); - dev->nregions--; + if (found) { vmsg_set_reply_u64(vmsg, 0); } else { vu_panic(dev, "Specified region not found\n"); --=20 2.20.1