From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: michael.d.kinney@intel.com) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by groups.io with SMTP; Thu, 01 Aug 2019 13:55:50 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Aug 2019 13:55:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,335,1559545200"; d="scan'208";a="191705261" Received: from mdkinney-mobl2.amr.corp.intel.com ([10.251.130.221]) by fmsmga001.fm.intel.com with ESMTP; 01 Aug 2019 13:55:42 -0700 From: "Michael D Kinney" To: devel@edk2.groups.io Cc: Jaben Carsey , Ray Ni , Zhichao Gao , Sami Mujawar Subject: [Patch v2 1/2] ShellPkg/AcpiView: Fix IA32 link error Date: Thu, 1 Aug 2019 13:55:40 -0700 Message-Id: <20190801205541.24792-2-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.21.0.windows.1 In-Reply-To: <20190801205541.24792-1-michael.d.kinney@intel.com> References: <20190801205541.24792-1-michael.d.kinney@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit https://bugzilla.tianocore.org/show_bug.cgi?id=1970 Update local variable in ParseAcpiSlot() to be UINT32 instead of UINT64 to avoid 64-bit multiply operation in the SLIT_ELEMENT() macro. If LocalityCount is >= MAX_UINT32 and then skip the validation check and print an INFO message instead. Cc: Jaben Carsey Cc: Ray Ni Cc: Zhichao Gao Cc: Sami Mujawar Signed-off-by: Michael D Kinney --- .../Parsers/Slit/SlitParser.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.c index 1f9dac66ee..6913ad8b31 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Slit/SlitParser.c @@ -57,8 +57,8 @@ ParseAcpiSlit ( ) { UINT32 Offset; - UINT64 Count; - UINT64 Index; + UINT32 Count; + UINT32 Index; UINT64 LocalityCount; UINT8* LocalityPtr; CHAR16 Buffer[80]; // Used for AsciiName param of ParseAcpi @@ -105,6 +105,11 @@ ParseAcpiSlit ( } } + if (LocalityCount >= MAX_UINT32) { + Print (L"INFO: Skipping validation of System Localities as locality count is >= MAX_UINT32\n"); + return; + } + // Validate for (Count = 0; Count < LocalityCount; Count++) { for (Index = 0; Index < LocalityCount; Index++) { -- 2.21.0.windows.1