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 <jaben.car...@intel.com> Cc: Ray Ni <ray...@intel.com> Cc: Zhichao Gao <zhichao....@intel.com> Cc: Sami Mujawar <sami.muja...@arm.com> Signed-off-by: Michael D Kinney <michael.d.kin...@intel.com> --- .../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 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#44808): https://edk2.groups.io/g/devel/message/44808 Mute This Topic: https://groups.io/mt/32683877/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-