From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web10.21522.1649624477076233141 for ; Sun, 10 Apr 2022 14:01:17 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=CuvNlqJs; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: guo.dong@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1649624477; x=1681160477; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=C2X3N5D11s84UzAK87HQo67Hf/tPMZzgSyKJYO/+pJM=; b=CuvNlqJsDQTh7jgoCNhHRmQzQuTNI4Mzl0xtp2xp2Ktie8icJvquUnaU x3HjFXA84IBJv9YynSgr+/uIl7q2FGzF2A4GtQerpsJnMxcsteXuKIpAZ lfXJAV/lL12DCM7VaC1RepyPijmIBHL7ko+TchLDu18oeVHiT5penO/qA REkKxc7Z5zeMu77cNOIGi0eGzSqQ1qs/K3IL2HZ5ZeUKw91VihxsUuLWt /sYm0zGtRJpi4BKskRzZu0HfzW0H4DXmeezYWfEQhLg5LOSARj8mDhqJW AN9GPqlZnBE0EdBQnpN0t3GzazqIFUSuaZNd48PKUzqU0xBIulmHsNysR Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10313"; a="261433751" X-IronPort-AV: E=Sophos;i="5.90,250,1643702400"; d="scan'208";a="261433751" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Apr 2022 14:01:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,250,1643702400"; d="scan'208";a="699120930" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by fmsmga001.fm.intel.com with ESMTP; 10 Apr 2022 14:01:15 -0700 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Sun, 10 Apr 2022 14:01:15 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Sun, 10 Apr 2022 14:01:15 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.171) 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.2308.27; Sun, 10 Apr 2022 14:01:15 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a9KL4oFHCJcTOzHDNEUBSSQchQSWlPDlrIMA5qLQ85S/GbzVsIDt7Jy8OX6McTayqKRZWEI5q1wzPKPMuNYP+30CUVZZX70HYixBeC1MgyXBVtp10G9+oEx41QQgfeAyU+zHHK8PBqqMhkxTQfNepjRzGgRKC0hHsChmRpELwMPOl3fw0hR+vcm1uyzwMYy11spH1Bfm8Chv3kqO7x1CY+CmcERMsiAUhDdt8rPujyxxZ4bxtrywb0Xq/q1EOkyva4ZSSH3SsKQxoolF09gFf8vpjnnFvVaEdcgL2mVvM6BEv3FHeEp3slmGtE7QtN0V1AhC8Ldoiztp5tE+LmBcsg== 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=dyNBIy7BWvG6W40XwxzTKv1WVVcF6DRNJbIDrwhE3mg=; b=bJZhSXgPLdmXceVIWbPi6ibpC1D1tpgX8uXn6Omrv7minbw6HP5wLWBliNg3xwkKa+iIkHRGxzI9HUEpp2pN3wjKaoQhRg5RdyZVMh5o118bfh+Fo+YYiV6pVEjt7YI02w6tOcnLt600Wl3ky3LnhuxwUkk6zsp7Rrh3KLtgRv2DZdtZU2Q9BtcJ/bVZ5xDDRin27VIBGv7Jj1UjSwM7c1ESRLt6A6WnJT+Dg5ZeejGofrGqYZYHsMM3YxXlYapJF3xocAXDzynUfDmLFUk/dKvVimXpCGNPn9HfpFKncA91YZjikW5BYSakZPKYJ9rkk/Mk9KnaW5TCS6O/RKmGkg== 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 Received: from BYAPR11MB3622.namprd11.prod.outlook.com (2603:10b6:a03:fe::30) by SN6PR11MB3279.namprd11.prod.outlook.com (2603:10b6:805:c6::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Sun, 10 Apr 2022 21:01:12 +0000 Received: from BYAPR11MB3622.namprd11.prod.outlook.com ([fe80::343e:797f:807a:5c9]) by BYAPR11MB3622.namprd11.prod.outlook.com ([fe80::343e:797f:807a:5c9%5]) with mapi id 15.20.5144.029; Sun, 10 Apr 2022 21:01:12 +0000 From: "Guo Dong" To: "Liu, Zhiguang" , "devel@edk2.groups.io" CC: "Ni, Ray" , "Ma, Maurice" , "You, Benjamin" , "Rhodes, Sean" Subject: Re: [PATCH] UefiPayloadPkg: Fix bug that Elf loader doesn't relocate in some case Thread-Topic: [PATCH] UefiPayloadPkg: Fix bug that Elf loader doesn't relocate in some case Thread-Index: AQHYSb2CXkEAQsrfLE60Me3/CPGLuqzpqKAA Date: Sun, 10 Apr 2022 21:01:12 +0000 Message-ID: References: <20220406135155.822-1-zhiguang.liu@intel.com> In-Reply-To: <20220406135155.822-1-zhiguang.liu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.401.20 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 53ac7d34-b931-4597-1357-08da1b353ec4 x-ms-traffictypediagnostic: SN6PR11MB3279:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8+5ZwDwvmtZgvGrJHnyx6YsNIt9AS/O0bJoEorZYqR4FRun/hFjWspfxLrkQ5E5Qyx8USDjU1gs0zDsUhxYYDwG/4oQTJM0EePcq7Vuz9ZQNRvq2hwrs5YUHCX8hydST8pYUfXjvZIZcd35z/fbx5GNVvN5Eu4fw7Mldt/6prDwFV4ltOnOmkOWi/N8v40w6I4MZdKurcLUbbkybxkemcHCXPwOnt+4zGSiZaPktNzKd2SeeG2sGz30ptV71z6+su6o1i7FKuKDBLcdYK1OxcU295gmUCGDZaWXAcswh8ZgYhHjL9TzMwxmAYgTohhCXT5KdVytxWBonjcPxHVTbTODCMCPMMm61iZDE1H0UQcI0xS+49JHL1YXZKzu/pw0HIuOiJ30p24ysdU32SqZDE2OvN/1SuuqX/ZAbQoBux4prowp0BXSIxRhgDT+6t1pxK13qfMOpcYZWV7INijvLmFatA6Omf/NScTdarXKJEevuRIE9sYgsqt8mtJ8RaasJfodys89d9jW1FyjxEgmMC1p1hxuNfHvyp1MtfUfm2G6G6XsNa3YPs9AwuOTQ44Miew2ajeh7yglLBNbl9h5c/cYDm5RKNBzKvNfnVhAyPt2Q3HpiGTmhQe0AlzwIEA3+//qbSKnnIKEgGhB45LqgmX8rvOYYK6rQTMDsjoc818rzQzuZGmzd3ytygCv2Z1AmfyidUUIJHFlG98WwrgUOUg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR11MB3622.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(66446008)(76116006)(4326008)(64756008)(66556008)(66476007)(66946007)(8676002)(86362001)(8936002)(38100700002)(5660300002)(38070700005)(122000001)(2906002)(82960400001)(52536014)(83380400001)(7696005)(6506007)(9686003)(186003)(53546011)(316002)(110136005)(54906003)(71200400001)(508600001)(55016003)(33656002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 2 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?SIEuZ/mi/GPri5hCXYZL2VQjmkFD+r5n10R9ej5xXyT4hLnoTvaF/xZF17Ad?= =?us-ascii?Q?76fqbJn0QMI4R1TJykS3LXypgkn3BgyhQKlwRyKO1M0I8G/7tiUkQ1U9s3IC?= =?us-ascii?Q?vt/8uk2YiHPA3IUhfNZNEDVoRsu8DRT8kBSGq4QHstRiLOOq1T0aJvgqyqkp?= =?us-ascii?Q?3phvnv90XHi3/PkLaSUN+XKoZowcrIawnM6xLHDcXs8JMrXHZXgqTCE1ECb7?= =?us-ascii?Q?0IRfxrNX7+zUDbfRrBaTLaCO547Wl5L015yeUSJPVS+tyJH+mrntwSNesVSb?= =?us-ascii?Q?t1PFD9PWZRaS9sy/8oEgCk55ucnxSoSc1lJf5yRYoyt8Jn3PvzuU4u5mztST?= =?us-ascii?Q?uqUuUFRHV5bdHvEZL2m5eO03oemjqHrJYldSjwxndW4VyqvsqtA6LR9pk2Wc?= =?us-ascii?Q?DXTGPqRocXqU2U5/eZyXBI7biQnqYSIC+4MAJ+1v7/13zTHrfyfSVThl7osO?= =?us-ascii?Q?sL0ZAGrN/jroebdRKTwV6/kKr0f7CQV3MIbvtA2xQJ21ZL0T3QSv6m9Gh/4b?= =?us-ascii?Q?bEzCaCiVUFpXoFOhFBeEoDDq9EPNC73ubrjY2QMQs+KXeNIqz4NEGi++ZD/z?= =?us-ascii?Q?gX0l5jrwFLdNSwgSUl8HgD2wStme5+hamyllDSbsVeuLQ9GzfyEOtteYuuA9?= =?us-ascii?Q?e06kz5mARMxEdFFY9TbwagHDgG3F4qgdqqR1LZH5OQrUa2S7UYJJaYVDB/9Q?= =?us-ascii?Q?NsKftAM40kHAyhKiTdR36JdxuTf98xSMgIPoU883yZaMOGjLAAy07agETshg?= =?us-ascii?Q?fuFW4eOaQVt8BQBmnGvb2jQ5v+KwRMj9LS58e+mG8uRnB5h31p6sX9TCjMQV?= =?us-ascii?Q?ThYG3E4rY6ENnznLzc/KJOIMs5J7bVYYPWjuCQgBOihMHrOefA0lXrwWIUYK?= =?us-ascii?Q?X9nMMWYf6dN6cXKpeOPxP8x1o0Xx5wzKbcEWkEctI9CdJfVif0UZHaV4qoN0?= =?us-ascii?Q?xG+Pn8hic74oH2WI2a9ANxEXW+7ZwYPunETqFLBtpZ9kt0UcPfsWa0/9vUdN?= =?us-ascii?Q?wE5w1xdZKZ+pRztp2pz0CMdTtkTb2m/gJEd4Uss6cs2SsRbMIn54mDaMhiLK?= =?us-ascii?Q?wJ2ctsVEd/bN4LEHUDSrJzGx1AR20K88Y9iqdEmWoEKDFPfXglqCheAg7yaV?= =?us-ascii?Q?dL04zg5ifBJt1ELCGcyaUmAKlN9/Pw9f8aD6zZ0o5dOLUDkz34eBqoOA+nVC?= =?us-ascii?Q?9mHxXoypVP6I1KyRc6OCTA++8EYJ/Q7uQCS23QmbigNioKDM/H05Ruip6yS5?= =?us-ascii?Q?VPyGYoihM2bO+STwi2KawsuRLfOexmC6DsqJwsNhlh/Nx0SuECZDyXrgv9+B?= =?us-ascii?Q?NoclsxJ8YDELdzBe0ojI/vQc2wpjZ77Q9Z7r1skHvSY+tkegDnSOsInxeU3k?= =?us-ascii?Q?R6vd4ytQndgb4yNTtpX0asKil2VOjDRtaXGS6AG1XSZlJMoJzPJeGfL/8ofz?= =?us-ascii?Q?GnL7RidK/DKeTqAus2H3od0B04cAN1ChE22JfxNUslqSo+R8sDNM9g2NDV2W?= =?us-ascii?Q?Bxyzj0zb8qgTmKFex+1rauklarTKW0T2koEhZSxoAO8cakK/BkLgJxDCnbvg?= =?us-ascii?Q?t9IgSKtifUK5KL42NGEmABxuSOdZZsHFDWHFc/X3UTzKbNdwpE2I7ieyFYxw?= =?us-ascii?Q?oETy/LE6Ah98r415dp1br2KmbGJPVxNkNwAhvde4c65kZnjIdLCLZOWKxE6S?= =?us-ascii?Q?ruE9NdT29boL09ujd7diNMV8i4ysealaSYJIVcx56RY/POQspe0WxG7emse0?= =?us-ascii?Q?JdlrM0a6lNa1C4kimYAXXgTI2I3e0Q1r95YcKuzLeAc+kv9DPN2wS3ktR1nO?= x-ms-exchange-antispam-messagedata-1: cv7CGK2c0iCaJA== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR11MB3622.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53ac7d34-b931-4597-1357-08da1b353ec4 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Apr 2022 21:01:12.4569 (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: kz9yuYL/eL+I01rh6vgUpuq134KV+290fh3TV9ONeqj1BmDdBrWc9c6NT3cG1CVUcCDlv5yUSHqrdV9iKmJP2w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3279 Return-Path: guo.dong@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Guo Dong -----Original Message----- From: Liu, Zhiguang =20 Sent: Wednesday, April 6, 2022 6:52 AM To: devel@edk2.groups.io Cc: Dong, Guo ; Ni, Ray ; Ma, Maurice= ; You, Benjamin ; Rhodes, Se= an Subject: [PATCH] UefiPayloadPkg: Fix bug that Elf loader doesn't relocate i= n some case Current implementation of the Elf loader reuses the same memory range if th= e desired memory range is covered by [file base, file base + file size]. However, there is a potentil bug, for example: If the first segment is located at 0x1000, and the desired address is 0x200= 0. While the second segment is located at 0x2000, and the desired address i= s 0x2000. When we parse and try to load the elf file, current implementatio= n may load the first segment at 0x2000, and override second segment. Cc: Guo Dong Cc: Ray Ni Cc: Maurice Ma Cc: Benjamin You Cc: Sean Rhodes Signed-off-by: Zhiguang Liu --- UefiPayloadPkg/PayloadLoaderPeim/ElfLib/ElfLib.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/UefiPayloadPkg/PayloadLoaderPeim/ElfLib/ElfLib.c b/UefiPayload= Pkg/PayloadLoaderPeim/ElfLib/ElfLib.c index 2a6305c67b..c7dfae14af 100644 --- a/UefiPayloadPkg/PayloadLoaderPeim/ElfLib/ElfLib.c +++ b/UefiPayloadPkg/PayloadLoaderPeim/ElfLib/ElfLib.c @@ -312,6 +312,13 @@ ParseElfImage ( ElfCt->ReloadRequired =3D TRUE; } + if (SegInfo.MemAddr !=3D = ((UINTN)ElfCt->FileBase + SegInfo.Offset)) {+ //+ // Need to relo= cate if the desired address is not the current address+ //+ ElfCt= ->ReloadRequired =3D TRUE;+ }+ if (Base > (SegInfo.MemAddr & ~(EFI_P= AGE_SIZE - 1))) { Base =3D SegInfo.MemAddr & ~(EFI_PAGE_SIZE - 1); = }--=20 2.32.0.windows.2