From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (NAM02-SN1-obe.outbound.protection.outlook.com [40.107.96.59]) by mx.groups.io with SMTP id smtpd.web11.1174.1676357714514634740 for ; Mon, 13 Feb 2023 22:55:14 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=DKnrtv68; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.96.59, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Rau90mNmA9jccMjvVSR/AYlY5mk+KHOiv92Qb1V/3KaWytmio50APpHE7iXCGyLYCCunAtihnfTplDUa3L1v59zF0TLF/m2l766LpK1Pz/GOrXOqnLCe1z/mOvRVkjeXpIspp1QeR6rbH1c0wf/icLhChGEht49EBt++naNj/jSqBm2LJHZhedYDNXXYILdBCiyAkk54YgeaffQeuQZamygx312wycwId3KX6hFX0hmlAH/XvF79WVVywo5ah5WTNVCpPnsotdpxXN0E8xqmD4W15au3/vEavUOeteqlP/H2XO1Y2wS77cNdTUuu6evv/EWezQbGisn3r+wZbv4IkQ== 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=Duwfi7fM2a6SX0u9U6nzSH6gjvhRTI4XgkPxDeZUQsA=; b=JgqCUk+yulxc+c6814aSEmJr8Z8rFIPxlEFtFVZaZ3yYILBjBkZGxGkIriUudVHvIdYgp21L2CRQsWa1t81N2OCasSQ9b7Vvs/vAmCPRYgcu+YB78Qc6eHMjnhYrJF1psVRqIMVg1ebwSEmgDja0vpIrtUE1z2BPqgaqMpPtKnvitUvkyfsymdUkso3oEwnXOIZBiMyuLVRZhPpj3tzakywex+gFN5jtf3TOosUUZmYuh7RQQu6fTUJrpso3sPMTxBiAAYMlfJfuaSYvGODecm/kvk6DlEYnGiktBzc3QeuLSelBxLPr3x6ikgILxqOXNAmIxnafRBzlMOnnRQxdQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Duwfi7fM2a6SX0u9U6nzSH6gjvhRTI4XgkPxDeZUQsA=; b=DKnrtv68Eyw+MDJmX+o2j+4kd7wz1vvzkRx+Xd/XaHOFZMv5Bv18sMuPhmalEbAwQL6bGlRYdts2OMviB+xLr5oOPxpkfW0YimQTnvofee/Bis3JOK3VKAUAiK7spRa7IWezihjh35k4bzGVP4u/1SbHYxCj+yyrYXz6sIh7OvU= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by CY8PR12MB7540.namprd12.prod.outlook.com (2603:10b6:930:97::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.26; Tue, 14 Feb 2023 06:55:07 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::d606:ab63:cf3:5d36]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::d606:ab63:cf3:5d36%5]) with mapi id 15.20.6086.024; Tue, 14 Feb 2023 06:55:07 +0000 From: "Chang, Abner" To: Igor Kulchytskyy , "devel@edk2.groups.io" CC: Nickle Wang Subject: Re: [PATCH] RedfishPkg/RedfishConfigHandler: fix FreePool issue Thread-Topic: [PATCH] RedfishPkg/RedfishConfigHandler: fix FreePool issue Thread-Index: AQHZPZilEIQF9jbSNUWIb1BsPDQTja7OBK7w Date: Tue, 14 Feb 2023 06:55:07 +0000 Message-ID: References: <1676065369-10396-1-git-send-email-igork@ami.com> In-Reply-To: <1676065369-10396-1-git-send-email-igork@ami.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-02-14T06:55:05Z; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=16fd8c28-bc13-4d7b-8005-4bbf1f523c73; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|CY8PR12MB7540:EE_ x-ms-office365-filtering-correlation-id: 527033e0-46c6-4759-f9dc-08db0e586847 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: chFWjwBCV4gBmUQU5xhU1HOE0LhL88AH8cIcW4L5Frqk3+xbJOYibhYo2p5yPtQkNpkwt6jjL1Ob4W/0eoMTM+huQfYUMXipXn7WdZxbA9zsUXrfyrhOORQNbjjB4VzAl9jXKrwaG0ovdhgNW9nUf2wFijLOLNQj31/UrOJ8xAu8t0itt6ifGcsXDyYCSo2KbHUwKOHSp0G4e5h6O3TrEFVinf79kjowBu4fxG40KsCjQyN3iAWPjLbA7t4l7MOnN3hB0DD9gTuLyhiF/uQS3CmGCE5swZbM/jJ8M/BPuXxqu2cQsDAbAZTFUE+JfwLTccL7DNgeybeLtFffxH+350skEAG/wnKC142gGwZvF+gYBFvG/aIuMtwpmtzNRBUAlBec/ixvxNmX6ML5UbIrIRPQhx5Rw1cyxDpmTqk0nIfVibxXX9s2AmEZsXhEEAnwYvLzrdCEFR9TnEkzLGaXo/BxzLRu8P2FQ7vX/XJxro4lhLkNLWDaJ+l6OcirQrUMSvObLiKsdM3U+OpbvqJXu5dXgg4jymPykItHr/UQJz9cde2tmBGIfgAu8y1ad5Vr9qmCq94xTMJkxfdnL0m03m7b1x4UQVBT136zpWRQ6U1tmNT0Osh4tsfZ8vyRFmVHpbHZknYOF1fQYcRE/L4hsEzDY/INUe/p3TWsYgEuEiLM+socsSU66qgIeKu1v6YXJiuzgZtYnbg7nWktWH5u0Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(396003)(346002)(39860400002)(376002)(366004)(136003)(451199018)(2906002)(83380400001)(110136005)(86362001)(316002)(41300700001)(9686003)(26005)(5660300002)(186003)(53546011)(8936002)(6506007)(52536014)(122000001)(71200400001)(38070700005)(38100700002)(76116006)(40140700001)(478600001)(7696005)(55016003)(4326008)(8676002)(66476007)(66446008)(66946007)(33656002)(66556008)(64756008);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?GP6xrl2mOvYCSJz0cnU/yy2CAfe/TVavncBRXE2BaHnBWf4sVgXIqnHplV6n?= =?us-ascii?Q?rqj+p2YW4mSsLVeHV6Pi7uuJdrtKRHUBcD7pEr15OxrP7uf8Yub2mrDQWguc?= =?us-ascii?Q?wTROh92YjaJxaHdo1k8HQKlvmnkkf2ETWqJueINupNPP+rRiBi25l+yQalue?= =?us-ascii?Q?wOlzLMwdNBBhoL1Ki5Fd15F5pZzoeMaB6loLqoyyrX8eyC7TopOlU6+HaYga?= =?us-ascii?Q?JT0wUxHGCW7nPAaZ9N4m8A2huxuiEol3ZQ2V3zgEBNBUo7Sh8t599HKtfAaC?= =?us-ascii?Q?YYJBfdp3hY9+Du94NYcTBajd86IHSS6QwePRWrmD2DFWe0SeV7N6PI0zpr9v?= =?us-ascii?Q?2wS7wS2aKCMI01ECRWhmb5lZDYO3JWoknqAx2bjZir8oOuSEbnkttZyZAknc?= =?us-ascii?Q?N9SF8wrqS5e4IrUm5po8IGMAnuOURFrPlqVsnq42QupIRFJ5DkWBx0En+oPE?= =?us-ascii?Q?d9KLVe5+u8b+BoGz4qFHx0YGlSNQHZYt2U27/YNXXfJDDOso/5uhGZ0TADWU?= =?us-ascii?Q?ZgXuby7p5Sw/XLckkuz+hT06MPruh8YNM+1xR+LaoApp2+XEET460/FDyi9V?= =?us-ascii?Q?IJovimjYFfR0nFnqDRZimcqnlikHRAfcewCZW93z+3WOrArStC9cpKt3D1IY?= =?us-ascii?Q?C2c/cXKZALXOazpmxF3BrHB9zP4iXUs/tmyfkL4umD/4djux/Rjefips9O61?= =?us-ascii?Q?VEtLJ/ljA9mMjxd5Ht3I7MjG2Y3i3abNx+DZVyOq1zUa7Y9sA4g1j4yZokss?= =?us-ascii?Q?zipniSUndY4TqCnrxJI+YxYbLR48S3PHIWeOOljd8DsxWGitv3VE8RVgKijI?= =?us-ascii?Q?zyA1CqxVKKexWnpyfRGEqSwkvRU445GRqmwQJfGx7rOATZ8N6Clmp2cS7tq9?= =?us-ascii?Q?36jPaABYPkv6xOXIt3mxk6vPw8gWhJdzP17XGjvPL0aa2ODUEhAEnnOZpQxh?= =?us-ascii?Q?sI8BWLT1gt2hsN0Vo3SfOoDiNwciTSWvBYuRmnsOzAIO19dP/F0pF2knrHVu?= =?us-ascii?Q?4tl7fgmPD6wzhQnZi9C4ggPQyRVl8l3vnEvmJBrsU4AqtvNRZcOKXbvAWrPR?= =?us-ascii?Q?mxdDE/AEJvAYwT6irEiIPQuyighD3RvC+nPyuxLpPi6qwrd3eyzJKXRH3p4D?= =?us-ascii?Q?z1a8TSQIduwx5uu4hBPr2Ty4jjjAiy3A/R8/Yf7/eo0uv6R2+F6HGAucJMkT?= =?us-ascii?Q?JZb3Pseq26bB/cYj6uy5eQ9E7lMxTg97xGwUV5IIpbTg2kAMFXhG7bi/OGrK?= =?us-ascii?Q?Upemc47lzjTVlU8lBq2Luh6N7rBkXqNrfBiuXD1PLwU4UIrBOtpJLGqHcv8A?= =?us-ascii?Q?E9Q/DFzc67zTcAglhNtAfby8nwbvrQ9zT0x5XEB8m5yBvTVTfAsBlBL1nlrz?= =?us-ascii?Q?LuE8x278w03mA/sHpWTV76NgEtNVWuG+jLDoHtuWtjH3VwQYeKG5yFKi5wFR?= =?us-ascii?Q?EI3Je7xszjTHgauGNduGjHUeJQWtCDMLXXCKpWt7l93yHG1kW/YtzGzIy0M7?= =?us-ascii?Q?woVZUN5p8b/NlgSmGQun8TXIvMyMqkTULttpZlvBX/3IAKJeBBdq4XuJyRaG?= =?us-ascii?Q?pzqILYT7hlgICK2UJGhDwvCW1rBFNkb1o5QDH7xk?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 527033e0-46c6-4759-f9dc-08db0e586847 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Feb 2023 06:55:07.2359 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: G4wHpwDVW2I0TTexUlMb1GgCPXeAgw4pLWQGndtDY99rkDD2OzlwBc/Fo3XaIfheZPkq7utbeCCOy/fSETvbng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7540 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Hi Igor, Thanks for catching this issue, I have a comment below inline. > -----Original Message----- > From: Igor Kulchytskyy > Sent: Saturday, February 11, 2023 5:43 AM > To: devel@edk2.groups.io > Cc: Chang, Abner ; Nickle Wang > > Subject: [PATCH] RedfishPkg/RedfishConfigHandler: fix FreePool issue >=20 > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. >=20 >=20 > gRedfishDiscoveredToken buffer is allocated as one piece during protocol > installed process, but deleted by parts during driver unload process. >=20 > Cc: Abner Chang > Cc: Nickle Wang > Cc: Igor Kulchytskyy > Signed-off-by: Igor Kulchytskyy > --- > RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) >=20 > diff --git a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.c > b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.c > index 96ac70f418..64b7fb7841 100644 > --- a/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.c > +++ b/RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerDriver.c > @@ -481,6 +481,7 @@ RedfishDiscoverProtocolInstalled ( > ErrorReturn: > if (gRedfishDiscoveredToken !=3D NULL) { > FreePool (gRedfishDiscoveredToken); > + gRedfishDiscoveredToken =3D NULL; > } > } >=20 > @@ -511,10 +512,10 @@ RedfishConfigHandlerDriverUnload ( > gBS->CloseEvent (ThisRedfishDiscoveredToken->Event); > } >=20 > - FreePool (ThisRedfishDiscoveredToken); > ThisRedfishDiscoveredToken++; > } >=20 > + FreePool (gRedfishDiscoveredToken); I found here is a potential issue of gRedfishDiscoveredToken: Due to RedfishDiscoverProtocolInstalled() may be called more than once in t= he case of multiple NIC installed on the system, means gRedfishDiscoveredTo= ken will be overwritten by AllocateZeroPool() and result in memory leakage = when unload the RedfishConfigHandler driver. Could you please help to create an linked list (e.g. mRedfishDiscoveredToke= nList) to record the newly allocated memory for gRedfishDiscoveredToken (I = think we can rename it to just RedfishDiscoveredToken)? So we can go through the link list to free RedfishDiscoveredToken allocated= for each NIC when unload the driver. Does this make sense? Thanks Abner > gRedfishDiscoveredToken =3D NULL; > } >=20 > -- > 2.37.1.windows.1 > -The information contained in this message may be confidential and > proprietary to American Megatrends (AMI). This communication is intended > to be read only by the individual or entity to whom it is addressed or by= their > designee. If the reader of this message is not the intended recipient, yo= u are > on notice that any distribution of this message, in any form, is strictly > prohibited. Please promptly notify the sender by reply e-mail or by > telephone at 770-246-8600, and then delete or destroy all copies of the > transmission.