From nobody Thu May 16 17:50:03 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1677510220; cv=none; d=zohomail.com; s=zohoarc; b=FzPXz0cj3HGgFNDE+djncnOqLrk6vPzrlKbLreQIDOONvbo2XlYX7GUvTu/81NlmeCpRcfKaUeqZGVhvKfX7+PVniKdXBrsJ/bOMv42A/XXaoQZUc7CQq9LxyuaqXliguAoClUsEv7Gj93GT72+TZnqNn0HLgY4BXk9py5BMVto= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677510220; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=s6Fen7XiXvKyfTDAUeR3DCZMoLB1DNPsrN9zZxaQWVo=; b=EGxjCmPHUJGzLuuTMs4PwrvQcwTWxYG1h6R8ArJT1RpBUTS7AxMf3o0HS8QFAHJo+RLL/XTiXAPHaQEhuhop4+QQD3s8/c9I1WkWZvEIcTQkyu67KMDN8WfLYhFqZonP4lxXgRmfcboXnJaY7hgiAgZAqt8YntRyrtBXAR5OStE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1677510220665566.5754974850586; Mon, 27 Feb 2023 07:03:40 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.502687.774591 (Exim 4.92) (envelope-from ) id 1pWf1z-0001bx-JA; Mon, 27 Feb 2023 15:03:11 +0000 Received: by outflank-mailman (output) from mailman id 502687.774591; Mon, 27 Feb 2023 15:03:11 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pWf1z-0001bq-GH; Mon, 27 Feb 2023 15:03:11 +0000 Received: by outflank-mailman (input) for mailman id 502687; Mon, 27 Feb 2023 15:03:09 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pWf1x-0001bg-GO for xen-devel@lists.xenproject.org; Mon, 27 Feb 2023 15:03:09 +0000 Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com [216.71.155.168]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id d5d33d67-b6af-11ed-a82a-c9ca1d2f71af; Mon, 27 Feb 2023 16:03:06 +0100 (CET) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: d5d33d67-b6af-11ed-a82a-c9ca1d2f71af DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1677510186; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=rrL3Wu2IJ8sfJxppcHVkKMnrvdeQ+P9GKvNTiTI6A64=; b=GY+1FOpjY35ERl016x4GnZbDjlUtn3sT5PJRqZbg76QSDIEV5XJs2aVP jquWzCn0/bloKehvP7baN1y6OfGN7ZnRMMH//7Ve1tiHkaJ/5c+9sJryY V1/rg5d0BCAQyGmHkozwMEnjaRvaNXWtJ+hKorAZJor/AlR4j3AqcU4YJ 8=; Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none X-SBRS: 4.0 X-MesageID: 97521943 X-Ironport-Server: esa5.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.123 X-Policy: $RELAYED IronPort-Data: A9a23:pFmJd63q1cTKnOnyD/bD5dBxkn2cJEfYwER7XKvMYLTBsI5bpzMFm GQbWWvSaP6DY2P2eo8gb97joBsCu8OAz9A3TFE+pC1hF35El5HIVI+TRqvS04F+DeWYFR46s J9OAjXkBJppJpMJjk71atANlVEliefTAOK6ULWeUsxIbVcMYD87jh5+kPIOjIdtgNyoayuAo tq3qMDEULOf82cc3lk8tuTS+HuDgNyo4GlD5gZkOqgQ1LPjvyJ94Kw3dPnZw0TQGuG4LsbiL 87fwbew+H/u/htFIrtJRZ6iLyXm6paLVeS/oiI+t5qK23CulQRrukoPD9IOaF8/ttm8t4sZJ OOhF3CHYVxB0qXkwIzxWvTDes10FfUuFLTveRBTvSEPpqFvnrSFL/hGVSkL0YMkFulfIUtW0 fdENxw2UyuOoMG4zbGLW7NBv5F2RCXrFNt3VnBIyDjYCbAtQIzZQrWM7thdtNsyrpkQR7CEP ZNfMGcxKk2aOHWjOX9OYH46tM6uimPybHtzr1WNqLBsy2PS0BZwwP7mN9+9ltmiFJoIxB/J+ jmuE2LRIw4WaoWH+xO/7WuLosDurXz8AJIyLejtnhJtqALKnTFCYPEMbnO5ruO+kVWWQM9EJ gof/S9Ghbg/8gmnQ8fwWzW8oWWYpVgMVtxICeo45QqRjK3O7G6k6nMsF2AbLoZ87YlvGGJsj wXS9z/0OdBxmJ2/UVaWqqi4lg6JNA82I2IBVT5eYDJQtrEPv7oPph7IS99iFou8gdv0BSz8z li2kcQuu1kApZVVjvvmpDgrlxrp/8GUFVBtum07S0r/tmtEiJiZi5tEALQxxdJJN86nQ1aIp xDocODOvblVXflheMFgKdjh/Y1FBd7fb1UwYnY1RfHNEghBHFbyFb28GBkkeC9U3j8sIFcFm nP7twJL/4N0N3C3d6JxaI/ZI510kve8Toq5CKCFMIQmjn1NmOivpnwGWKJt9zq1zBhEfV8XZ f93jvpA/V5FUP86nVJats8W0KMxxzBW+I8gbcmT8vhT6pLHPCT9Ye5cYDOzghURsPvsTPP9r 4wOaKNnCnx3DIXDX8Ug2dJKdA1acCViWMGeRg4+XrfrHzeK0VoJU5f5qY7NsaQ4z/Q9ejvgl p1lZnJl9Q== IronPort-HdrOrdr: A9a23:8Rz1+6lY7d91x4LZcLpVGhsTWV3pDfLo3DAbv31ZSRFFG/Fw9/ rCoB17726QtN91YhsdcL+7V5VoLUmzyXcX2/hyAV7BZmnbUQKTRekP0WKL+Vbd8kbFh41gPM lbEpSXCLfLfCJHZcSR2njELz73quP3jJxBho3lvghQpRkBUdAF0+/gYDzranGfQmN9dP0EPa vZ3OVrjRy6d08aa8yqb0N1JNQq97Xw5fTbiQdtPW9f1DWz X-IronPort-AV: E=Sophos;i="5.98,219,1673931600"; d="scan'208";a="97521943" From: Andrew Cooper To: Xen-devel CC: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= , "Andrew Cooper" , =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= , Juergen Gross Subject: [PATCH] libs/guest: Fix resource leaks in xc_core_arch_map_p2m_tree_rw() Date: Mon, 27 Feb 2023 15:00:57 +0000 Message-ID: <20230227150057.2858898-1-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1677510240680100001 Edwin, with the help of GCC's -fanalyzer, identified that p2m_frame_list_li= st gets leaked. What fanalyzer can't see is that the live_p2m_frame_list_list and live_p2m_frame_list foreign mappings are leaked too. Rework the logic so the out path is executed unconditionally, which cleans = up all the intermediate allocations/mappings appropriately. Fixes: bd7a29c3d0b9 ("tools/libs/ctrl: fix xc_core_arch_map_p2m() to suppor= t linear p2m table") Reported-by: Edwin T=C3=B6r=C3=B6k Signed-off-by: Andrew Cooper Reviewed-by: Juergen Gross --- tools/libs/guest/xg_core_x86.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tools/libs/guest/xg_core_x86.c b/tools/libs/guest/xg_core_x86.c index 61106b98b877..c5e4542ccccc 100644 --- a/tools/libs/guest/xg_core_x86.c +++ b/tools/libs/guest/xg_core_x86.c @@ -229,11 +229,11 @@ xc_core_arch_map_p2m_tree_rw(xc_interface *xch, struc= t domain_info_context *dinf uint32_t dom, shared_info_any_t *live_shinfo) { /* Double and single indirect references to the live P2M table */ - xen_pfn_t *live_p2m_frame_list_list; + xen_pfn_t *live_p2m_frame_list_list =3D NULL; xen_pfn_t *live_p2m_frame_list =3D NULL; /* Copies of the above. */ xen_pfn_t *p2m_frame_list_list =3D NULL; - xen_pfn_t *p2m_frame_list; + xen_pfn_t *p2m_frame_list =3D NULL; =20 int err; int i; @@ -297,8 +297,6 @@ xc_core_arch_map_p2m_tree_rw(xc_interface *xch, struct = domain_info_context *dinf =20 dinfo->p2m_frames =3D P2M_FL_ENTRIES; =20 - return p2m_frame_list; - out: err =3D errno; =20 @@ -312,7 +310,7 @@ xc_core_arch_map_p2m_tree_rw(xc_interface *xch, struct = domain_info_context *dinf =20 errno =3D err; =20 - return NULL; + return p2m_frame_list; } =20 static int --=20 2.30.2