From 96fcfdbfb068670b849a850bbed28ecad913af80 Mon Sep 17 00:00:00 2001 From: Ruiyu Ni Date: Tue, 26 Jul 2016 18:20:05 +0800 Subject: [PATCH] PcAtChipsetPkg/PcRtc: Fix a stack corruption issue In 32bit environment, ScanTableInSDT() incorrectly copies 8 bytes of data to 4-byte pointer Table, which causes the stack corruption. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni Reviewed-by: Eric Dong --- PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c b/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c index b86c1f4bed..40d2e49173 100644 --- a/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c +++ b/PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c @@ -1271,7 +1271,7 @@ GetCenturyRtcAddress ( Fadt = NULL; if (Rsdp->Revision >= EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION) { Xsdt = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) Rsdp->XsdtAddress; - Fadt = ScanTableInSDT (Xsdt, EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, sizeof (UINT64)); + Fadt = ScanTableInSDT (Xsdt, EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, sizeof (UINTN)); } if (Fadt == NULL) { -- 2.39.2