From nobody Fri May 17 22:50:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+90936+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1656615991865798.9659176943122; Thu, 30 Jun 2022 12:06:31 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id mn3YYY1788612xviivBZwovJ; Thu, 30 Jun 2022 12:06:30 -0700 X-Received: from NAM02-SN1-obe.outbound.protection.outlook.com (NAM02-SN1-obe.outbound.protection.outlook.com [40.107.96.79]) by mx.groups.io with SMTP id smtpd.web09.29559.1656615989941554460 for ; Thu, 30 Jun 2022 12:06:30 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SxoZM0H2HlKE+fYm107dwboNcw6MNEfBzJkxNnf2L604QrATRrghhb+gSU3Fnur/d2Ama9ixH4g1Lb2A8n/gubFl5ri0JBjiJQ2VVxvMk7GgT/2Shj8p8y4fhaPbLo0E0LFRufBnubC1kY5c3xL+s1iQMEXAejaH3Jtct+tBU2Zx5kc1lC3d+nFCPEEDTaIokFYh9ZQ9N8zqFxJphItgd2W6ybSUjpW761wi4TsXBc8+9oeKIfVKtwnj2qrDO2ucZgnqmhNA1G2lHoFu9/um6d+dtXqSdQjnaMtdk8puueNJ/hoTJbMCEVeI0d1OALSz4Aq+sOKJSsCpWFFPU2LThg== 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=Ile4TbqNbX8Y4UTgiflhOx/UfU2N/pFr5HE2f2ga9NI=; b=I26tJvx5CkuYQ7dY8UsjE7XtorKBV8xEuas85mfgjGVcqiuyLZiP4EOBS1H3cYMeLDY7C59W1dTO4TAGhLOdDJyxF9bXEtl3CS08Upgmka05UconjpItz6fPg4TtSFASZYYnm9wvgcoG/VYSQh+VvS/nyovrmKz0itiV+AoDBg0dx3itf+0Nj2qMokxjgNR52rMRoY0Z4mAyKMCxSgMTdn7abNI4VcK30pSpyJxeefAbiaMerTSJmsiFRoqzSe3K11AgatHwTIH+wvzjiVZNffkfOkRKNm7sGE9gZ7omPkneh0e/WIaRvKXkSTRzQqQdvIzVxHAPIdve74bVfNZn+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 12.22.5.234) smtp.rcpttodomain=hpe.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none X-Received: from BN9P220CA0017.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:13e::22) by LV2PR12MB5870.namprd12.prod.outlook.com (2603:10b6:408:175::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.14; Thu, 30 Jun 2022 19:06:28 +0000 X-Received: from BN8NAM11FT008.eop-nam11.prod.protection.outlook.com (2603:10b6:408:13e:cafe::6d) by BN9P220CA0017.outlook.office365.com (2603:10b6:408:13e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.14 via Frontend Transport; Thu, 30 Jun 2022 19:06:28 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 12.22.5.234) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+90936+1787277+3901457@groups.io; helo=mail02.groups.io; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 12.22.5.234 as permitted sender) receiver=protection.outlook.com; client-ip=12.22.5.234; helo=mail.nvidia.com; pr=C X-Received: from mail.nvidia.com (12.22.5.234) by BN8NAM11FT008.mail.protection.outlook.com (10.13.177.95) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.5395.17 via Frontend Transport; Thu, 30 Jun 2022 19:06:27 +0000 X-Received: from rnnvmail205.nvidia.com (10.129.68.10) by DRHQMAIL101.nvidia.com (10.27.9.10) with Microsoft SMTP Server (TLS) id 15.0.1497.32; Thu, 30 Jun 2022 19:06:27 +0000 X-Received: from rnnvmail204.nvidia.com (10.129.68.6) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.26; Thu, 30 Jun 2022 12:06:26 -0700 X-Received: from perses.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.6) with Microsoft SMTP Server id 15.2.986.26 via Frontend Transport; Thu, 30 Jun 2022 12:06:25 -0700 From: "Jeff Brasen via groups.io" To: CC: , , , , Jeff Brasen Subject: [edk2-devel] [PATCH] EmbeddedPkg/PrePiMemoryAllocationLib: Add check for space on offset allocation Date: Thu, 30 Jun 2022 13:06:35 -0600 Message-ID: MIME-Version: 1.0 X-NVConfidentiality: public X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: de086b4a-221d-4580-e3e0-08da5acba28f X-MS-TrafficTypeDiagnostic: LV2PR12MB5870:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: p1rGewyz87xdql1nguIuxC3Xnl/De36acn9/CUE3qJvx/zO2kNaoNyedEOb13g6ssGZXN9gqt2XDw4LSXg0Yyi7+ChHuMNwVIF+TnGsRGuoDess2AcGsnfx1mGovhpJEio33BSV8k6w8R4vvV2j4raLcnsuS4EzwRXPFN/DVFNdoiqjTYW2eVpyiK2qLLtYbTz1Xo1G1vrdR6u4VyebnxMJrKLd0EDy3pQDDxF7nmxKyoKr73YKMsdp/4Zwe8OtqzSjK98zWUW0q1R2pLikckauXbnVE3rDG3oeRNL/n3GK9xBEr4oJCdFk0fk1Y7x4xV8HmYj6W5zNV48DZs/2BXb0Qq1UUYIyTJVd1d85dr7Io8ZoErbWnJX8DEKzKeXs2VOiLouP0AWE4rRpUWWRBXl29PdvJ6pUVrMWg0eGVZWwixzXza/S+//9lRhQLmAaWu2mPgp4H9jZTh5pK5wzc7oTScCTsx+10Jvz9oI+JbJdGo4MLyujBkP9y7K6vgBxulrjYhnztTQzBugShxC5gGfCc5vdFJ1TeKovCSyXs7FUhdm70/7KxvbCijxrwlNgD/uG3pUx9C9IGMcn+cC9pQmcB17GK8bIUJs4RU0GpjxbQI92VeRkegt50+ELBHIYhelcnlMFeyV6TH56J7vPmtslBQJVEombOaiEw+ZnqT6Kve5lb8k9YHgm+DJZ9bmYoL1ij/vvfKdsYjFGnygso2xFk/2Tqm/oHfhPWq/ctV6amU0tPO8XoP5Pkg9An71zOWsdXrw137+JrB6uBN5RKYCoe59gkcEIKAdOFrACHKOgYU2Q9rvL3sfwqEgUPGU1JZ1+CuPCg+PO3m9VM+rU2p6CrXV/H5PYLs79dzVpvoYI= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2022 19:06:27.6671 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: de086b4a-221d-4580-e3e0-08da5acba28f X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[12.22.5.234];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT008.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5870 Precedence: Bulk List-Unsubscribe: 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,jbrasen@nvidia.com X-Gm-Message-State: Gv7eVsUy3YjW7cntGI0I9Wz0x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1656615990; bh=BX9fV81ypWOgdq5cke9V/kOJl3eSN3HKY6ii7GIiNI0=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=ikHdZsIls0hnxWJ/F6id8/1LkQNuB5CLllGEblVr7BIk/NYOB2eBJq2EEkzKS4p9746 i7pUXA9U62Cysh+K6SrlwSLx8YvkfUNriw/LCXAbrqGnt3HD/J2B6plVEM0sNOVbCK0E8 sneTacHyCXr3oK8qUF0ncOt5UpgMPgludxo= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1656615993403100001 Content-Type: text/plain; charset="utf-8" Update check for enough space to occur prior to alignment offset. This prevents cases where EfiFreeMemoryTop < EfiFreeMemoryBottom. Signed-off-by: Jeff Brasen --- .../MemoryAllocationLib.c | 53 +++++++++++-------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/EmbeddedPkg/Library/PrePiMemoryAllocationLib/MemoryAllocationL= ib.c b/EmbeddedPkg/Library/PrePiMemoryAllocationLib/MemoryAllocationLib.c index 78f8da5e95..1956d644c3 100644 --- a/EmbeddedPkg/Library/PrePiMemoryAllocationLib/MemoryAllocationLib.c +++ b/EmbeddedPkg/Library/PrePiMemoryAllocationLib/MemoryAllocationLib.c @@ -38,37 +38,44 @@ AllocatePages ( =20 Hob.Raw =3D GetHobList (); =20 - // Check to see if on 4k boundary Offset =3D Hob.HandoffInformationTable->EfiFreeMemoryTop & 0xFFF; + // + // Verify that there is sufficient memory to satisfy the allocation and = padding prior to updating anything + // + if ((Hob.HandoffInformationTable->EfiFreeMemoryTop - ((Pages * EFI_PAGE_= SIZE) + sizeof (EFI_HOB_MEMORY_ALLOCATION)) - Offset) < Hob.HandoffInformat= ionTable->EfiFreeMemoryBottom) { + if (Offset !=3D 0) { + DEBUG ((DEBUG_ERROR, "Offset applied without enough space\r\n")); + } else { + DEBUG ((DEBUG_ERROR, "Out of memory\r\n")); + } + + ASSERT (FALSE); + return 0; + } + + // Check to see if on 4k boundary if (Offset !=3D 0) { // If not aligned, make the allocation aligned. Hob.HandoffInformationTable->EfiFreeMemoryTop -=3D Offset; } =20 // - // Verify that there is sufficient memory to satisfy the allocation + // Update the PHIT to reflect the memory usage // - if (Hob.HandoffInformationTable->EfiFreeMemoryTop - ((Pages * EFI_PAGE_S= IZE) + sizeof (EFI_HOB_MEMORY_ALLOCATION)) < Hob.HandoffInformationTable->E= fiFreeMemoryBottom) { - return 0; - } else { - // - // Update the PHIT to reflect the memory usage - // - Hob.HandoffInformationTable->EfiFreeMemoryTop -=3D Pages * EFI_PAGE_SI= ZE; - - // This routine used to create a memory allocation HOB a la PEI, but t= hat's not - // necessary for us. - - // - // Create a memory allocation HOB. - // - BuildMemoryAllocationHob ( - Hob.HandoffInformationTable->EfiFreeMemoryTop, - Pages * EFI_PAGE_SIZE, - EfiBootServicesData - ); - return (VOID *)(UINTN)Hob.HandoffInformationTable->EfiFreeMemoryTop; - } + Hob.HandoffInformationTable->EfiFreeMemoryTop -=3D Pages * EFI_PAGE_SIZE; + + // This routine used to create a memory allocation HOB a la PEI, but tha= t's not + // necessary for us. + + // + // Create a memory allocation HOB. + // + BuildMemoryAllocationHob ( + Hob.HandoffInformationTable->EfiFreeMemoryTop, + Pages * EFI_PAGE_SIZE, + EfiBootServicesData + ); + return (VOID *)(UINTN)Hob.HandoffInformationTable->EfiFreeMemoryTop; } =20 /** --=20 2.25.1 -=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 (#90936): https://edk2.groups.io/g/devel/message/90936 Mute This Topic: https://groups.io/mt/92093864/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-