From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 8A98AAC0988 for ; Sat, 20 Jan 2024 02:02:40 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=6AALObi3JGGrY6QnRy80bZzjejwpd/Squt0StXfQG3I=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1705716159; v=1; b=ciuYdENcABfgCmUhMFmS5QtLz4sv7iL5oU8cA2gMNKSStmkdDH1cZRIDLL+QNa+Wb9TNL0cB quND59xP24nGhMo7VF7AUopAopoIwunFxMgsajAd59tllDmiOKCOBy7KkRAfG2SGVhSiGgwnd2j y2EbwUHmj3v9b86293ygGK8U= X-Received: by 127.0.0.2 with SMTP id 6Tk1YY7687511xaLiq0g415K; Fri, 19 Jan 2024 18:02:39 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) by mx.groups.io with SMTP id smtpd.web10.12730.1705716158187790824 for ; Fri, 19 Jan 2024 18:02:38 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10957"; a="14250762" X-IronPort-AV: E=Sophos;i="6.05,206,1701158400"; d="scan'208";a="14250762" X-Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Jan 2024 18:02:38 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10957"; a="788508947" X-IronPort-AV: E=Sophos;i="6.05,206,1701158400"; d="scan'208";a="788508947" X-Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga007.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 19 Jan 2024 18:02:37 -0800 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 19 Jan 2024 18:02:36 -0800 X-Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Fri, 19 Jan 2024 18:02:36 -0800 X-Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.169) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Fri, 19 Jan 2024 18:02:15 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z8NLGHQbKXdMtKBJoqX6sWuaV9qdeNrFhIFbYqXMOBo8b1JYXcU5m3eVapp5CODrvNRqsHf8QN4OdhaWSryHR1BkKgNG6q2VztBZtzdOX9zZAKJJv4XGLODmTo3FPFsOL8lHQ99Bo8CQ3g6/bsZImoXYpTAYKUK/1uOBiaJqG1tP8liZEAcTKGqQ9omDhSegoNkl0ZFbhO9CUx4twrFOhE4IJLwBhTX8XGdAD5NHjIbO3SJ9fWzfhUBkG4R6xiuCHXtCELxz8qYrLUWzJAfKirtLUfjNaeT3J7xx1e+ugxw1zkMtuS4K3ERLt0RjadSfc2UqDNV50rrZV64W/vT1fg== 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=xKh81B25/ZaaGVhMZIXflArF3ylxPWuZXCF3iRp4Vrc=; b=IA1ROm8LzUm0wXFTcaO4NX2qRgeb8J4B2ZiM/VIlK6d0h1DtQHnVqr77vwIGIo3GGhtMIwXQbaGJ/YeJlatLzC6xo/RZaTeXeN1i1IcXeCSGD9QLoXp86tzbdPLmISVx8+aVuan63gpbpxTAqdosukn8RQ3tsWss4994QPC6a0zgUQEclA7HpH3HBGu5yiExBDWUI4zs2fUKpCKHv9IyiXhD1udl0ZyosCLYH1SWYD78NICIaKMLjLoa6tjH1NxEUrZJ5W2OHS9pKPWZtsjfW8wq7bVKqD7ZbDS9EsuZJb0R5zuYEXWnMppqd3oUUWJOMX5oJ0LTSGGegdfNFMk+5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none X-Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by SA1PR11MB8394.namprd11.prod.outlook.com (2603:10b6:806:37c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.26; Sat, 20 Jan 2024 02:02:12 +0000 X-Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::4382:5b03:f13:88ff]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::4382:5b03:f13:88ff%4]) with mapi id 15.20.7202.026; Sat, 20 Jan 2024 02:02:12 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "Jin, Zhi" CC: Liming Gao , "Ni, Ray" , "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH 1/2] MdeModulePkg: Remove the handle validation check in CoreGetProtocolInterface Thread-Topic: [edk2-devel] [PATCH 1/2] MdeModulePkg: Remove the handle validation check in CoreGetProtocolInterface Thread-Index: AQHaSRCv0C7oRmspVU6c1vBb8FKDQrDh9k1g Date: Sat, 20 Jan 2024 02:02:12 +0000 Message-ID: References: <20240117064510.390499-1-zhi.jin@intel.com> In-Reply-To: <20240117064510.390499-1-zhi.jin@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|SA1PR11MB8394:EE_ x-ms-office365-filtering-correlation-id: eae68054-8bd2-4371-8f04-08dc195bd13f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: f6CkDutATkBS8tSz8PDx2ouOv9zQd7Ztn4DMvMutQqFM/58aPBz1mSe+ywysu+AYgjWIVL8MkN99ttUOw0NR806uKwT22QZLIqG382O+74ndOr3y7DJe4o5ycUKBl/RHIyn3REJLnkk0a7M72qTuM7ZDDhnvsfVf5uHufieO2g1A03nJULbIl50xL7snloWj0H/Z8qccTClbUgZ3znRzpbQv4tYKxfIdU+REs2QvPJybyf25ZPo/HU25jQ/aDdLPVu2E2k7Y64SZRjvuzrwyYrpCar9FxbSURfV44p4ZQk7h1TjR+a6wg7TIc1mzTls8krfZvSwQdyCfWHV73ADYdyMpxmMv1zzoWB+pid5MGe+s8rKFBr1uQ9Y+hPQSrRQTAv6cBY8jUj2umPp0LWynhNpnunXSbAffvb3MI9Q6Gfd6b2bbIOFvtgqeW7FLrCqmMt0TTfP3eX19B9lngXINC+a/LLObrXZ8MUTWSgXjB8RwiuiHnn6RqDjW9KTNSnuc7/mGveiD+HdZDV/uLhmvauk9BwHhgOEuqD1oHAXYSEWrccl0CcmwK6o/EBpRBXcxTZHONrMLSQxZhJ6WbKqdGm0WuANqk7ZPIb4NeF2mIZQ2O3VBsftqWquUgFddd7U9tQTWUfFJMzMuYtNiIJaZvA== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?kPeG4MKF3MhTkX/bLRfVxWqOTc/qeme65xjkDazSCtNzJKb60P5uT8nFikPs?= =?us-ascii?Q?ohvBWdxaWr6i0xSC8Hku5Y3arFi+GTNQAJ7PQEFfSfmZclxRlRQQhiBccy31?= =?us-ascii?Q?6Aw0logTTJgvpSa2wMlJqG6aYbK5RYFwXvbgmx8IG+qumXD7NKMpPtrc/NkG?= =?us-ascii?Q?N4TEa8PldA0uHG7Tqx64CZXV3+4a9tA0e5wrmSHom8G9HMRP6DANb1koZdLn?= =?us-ascii?Q?FhuLLCllfkgw5z4htuPgCFRZ5ZLLoa29yXcsG66y1hzZV0o4fLUK+Tt8Yodt?= =?us-ascii?Q?WTzMxaAFLk+/etHCzvZkCVQJMQmTvXWEJjMjkQavV+ZBjYKwZQiFqlrGVaoL?= =?us-ascii?Q?uxO/3Rpj+UsoAWUS3W007CjgwTgskHQ91ZNUdFYJk2E2xT+Xqau1XVYZ9pMc?= =?us-ascii?Q?f85pkadlXxq3AQq7vppVSkhiKgagp0r1SLFREDFVtKHlBj2bYj515nv0xPjZ?= =?us-ascii?Q?+TGktIDUg7TcuQk2B//S4QV+WW+wVXN95ZIlF+Eo8M3lPoyzchrRxi1Wvbv0?= =?us-ascii?Q?d7uNHj91EklmmwztP23BHECtYSUzR7dqFF2YIaB8KihMqI2Xrwo+Q2ntyXLE?= =?us-ascii?Q?unldm5F5y3/iw0+n3gQqPyqCVBZRBLXUj8cZUtmDcbiA31O45cHqPv8oUfwL?= =?us-ascii?Q?s/HDtUxF0zc57MkAl8P0yDVYvfD6MAYdNo8EmbOiiV7nVdAmR6PW3Lepxov/?= =?us-ascii?Q?PG+vFiFmtTbuLhcVmFX8DOJjhzU1hu/gimwZ6aT6F3t85fvZZub1PVDkmWBz?= =?us-ascii?Q?ThIYvwa2Pp0OI5mOYo1oQAuLgz/6CRxjNceXZe9pfh8ZYzZWdhOF1kl43R0H?= =?us-ascii?Q?5t9glKR/l0/Wr7Zshds1yabnveRDHvLI4aO63kvmVcZfaHshRsKFzpOg/X7l?= =?us-ascii?Q?eVupCYc8kielnRLmjNpcGw82bDaL9jPPzIgftDyLT8JllNjdVbs/3TTr60yY?= =?us-ascii?Q?rtCCNXH2FJKIGi9wi7rd6Plwg+KhvvGEZDTAqK5f0PrgOcVf+xptAq6Jy0Zj?= =?us-ascii?Q?EDYFIWX4mSLrgtAUWfsHoXNDIXLxMYOrSo/yFAUPAAhz5od1Rczgop7Xeutn?= =?us-ascii?Q?+4LCvxKPHNZUxOZy1E0PvApTXfbqniZVfoWdLvNDM19GE1VCQRW+d1hB6XNE?= =?us-ascii?Q?5IiSwrMNwwprIbyXmTRla+4+Ih2EzMChJ6mydD5hdl/3SLH3bRWhoOkn4Qev?= =?us-ascii?Q?EJlvUm+HBc+S9Ck6ndQOALFwlR9fLf+9/KBmI9D7huNFW2VUlZcal2kmnk5f?= =?us-ascii?Q?ufyTiExWpVtqFxP8K9RVzB7BsOLeKnZQ9KVqPuDyREcefsTHsieq1lUffTRP?= =?us-ascii?Q?/GMBOu0Xp9iZffBDqWjgcCOZK4Ucvid0gBcB4BjZ2wwOTNg+NdjYS8brrV+R?= =?us-ascii?Q?IAHm8akMn6yPDsiUSbI6/I2TgYv/JukTDcuGZBMqtZKDLLbuhREGCPRosCxG?= =?us-ascii?Q?m+32ug6ar4CvT1MgO2/90GoMb1xKzao+gsbguWcLjs9y/7fF++AufMoP/a2u?= =?us-ascii?Q?s9QxYihgPsrzVbRI743kiobWXDLtD/ZELYiq5juMTkeEM6guIQnJ+JyPz1yW?= =?us-ascii?Q?wc/er4UKweDofgibJWV6TG7BV00lE7/G8nxNq+OY03Ej2WsA3cK47uaX65OO?= =?us-ascii?Q?1A=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: eae68054-8bd2-4371-8f04-08dc195bd13f X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jan 2024 02:02:12.3012 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: vnEkvXqvfv6IiUrao1OuoxN3O1oTokdig1LVpxAqnpQjBDo87SEduB+qbS5QU1Hm51xdi77dkZ3jeWqkVmb9juM3CIhmVfGak4K/g4AmaPM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB8394 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,michael.d.kinney@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: b2sllP4abghbc5kIm9pPLiQmx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=ciuYdENc; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io Hi Zhi, Some comments below. Mike > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Zhi Jin > Sent: Tuesday, January 16, 2024 10:45 PM > To: devel@edk2.groups.io > Cc: Jin, Zhi ; Liming Gao ; > Ni, Ray > Subject: [edk2-devel] [PATCH 1/2] MdeModulePkg: Remove the handle > validation check in CoreGetProtocolInterface >=20 > CoreGetProtocolInterface() is called by CoreOpenProtocol(), > CoreCloseProtocol() and CoreOpenProtocolInformation(). > Before CoreOpenProtocol() calls CoreGetProtocolInterface(), the input > parameter UserHandle has been already checked for validation. So does > CoreCloseProtocol(). > Removing the handle validation check in CoreGetProtocolInterface() > could improve the performance, as CoreOpenProtocol() is called very > frequently. > Meanwhile, need to make it the caller's responsibility to check the > parameters, and add the check in CoreOpenProtocolInformation(). >=20 > Cc: Liming Gao > Cc: Ray Ni > Signed-off-by: Zhi Jin > --- > MdeModulePkg/Core/Dxe/Hand/Handle.c | 17 +++++++++++------ > 1 file changed, 11 insertions(+), 6 deletions(-) >=20 > diff --git a/MdeModulePkg/Core/Dxe/Hand/Handle.c > b/MdeModulePkg/Core/Dxe/Hand/Handle.c > index 51e5b5d3b3..a0d2d03267 100644 > --- a/MdeModulePkg/Core/Dxe/Hand/Handle.c > +++ b/MdeModulePkg/Core/Dxe/Hand/Handle.c > @@ -916,6 +916,8 @@ CoreUninstallMultipleProtocolInterfaces ( >=20 > /** > Locate a certain GUID protocol interface in a Handle's protocols. > + Note: This function doesn't do parameters checking, it's caller's > responsibility > + to pass in valid parameters. >=20 > @param UserHandle The handle to obtain the protocol > interface on Instead of a Note:, I recommend the description of this parameter be updated to state that the caller must pass in a valid UserHandle that is checked with CoreValidateHandle(). Also, this API CoreGetProtocolInterface() is an internal helper=20 function. I also recommend that this function be declared 'static' so the scope of the assumption that UserHandle is valid is only=20 by calls from other functions in this same file. > @param Protocol The GUID of the protocol > @@ -929,17 +931,11 @@ CoreGetProtocolInterface ( > IN EFI_GUID *Protocol > ) > { > - EFI_STATUS Status; > PROTOCOL_ENTRY *ProtEntry; > PROTOCOL_INTERFACE *Prot; > IHANDLE *Handle; > LIST_ENTRY *Link; >=20 > - Status =3D CoreValidateHandle (UserHandle); > - if (EFI_ERROR (Status)) { > - return NULL; > - } > - > Handle =3D (IHANDLE *)UserHandle; >=20 > // > @@ -1392,6 +1388,15 @@ CoreOpenProtocolInformation ( > // > CoreAcquireProtocolLock (); >=20 > + // > + // Check for invalid UserHandle > + // > + Status =3D CoreValidateHandle (UserHandle); > + if (EFI_ERROR (Status)) { > + Status =3D EFI_NOT_FOUND; > + goto Done; > + } > + > // > // Look at each protocol interface for a match > // > -- > 2.39.2 >=20 >=20 >=20 >=20 >=20 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#114107): https://edk2.groups.io/g/devel/message/114107 Mute This Topic: https://groups.io/mt/103781273/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/19134562= 12/xyzzy [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-