]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdePkg UefiLib: Check Table against NULL in ScanTableInSDT
authorStar Zeng <star.zeng@intel.com>
Fri, 19 Oct 2018 07:56:57 +0000 (15:56 +0800)
committerStar Zeng <star.zeng@intel.com>
Sun, 21 Oct 2018 01:57:44 +0000 (09:57 +0800)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1266

af5e95215928e052445c473f1244412dadea8252 abstracted generic functions
from different modules (IntelVTdDxe, S3SaveStateDxe, PcRtc,
DpDynamicCommand and PiSmmCpuDxeSmm). Some of them (IntelVTdDxe and
PcRtc) checked Table against NULL before accessing Table->Signature,
some (S3SaveStateDxe, DpDynamicCommand and PiSmmCpuDxeSmm did not.

The ScanTableInSDT() in Acpi.c of UefiLib was mainly from
S3SaveStateDxe, so it does not check Table against NULL before
accessing Table->Signature.

This patch updates ScanTableInSDT() to check Table against NULL first
before accessing Table->Signature.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
MdePkg/Library/UefiLib/Acpi.c

index 4df6731ff0a45722a1b14d9a5d77087176feac1c..59a828835ca0816de3d766dfddafdfa00a582898 100644 (file)
@@ -67,7 +67,7 @@ ScanTableInSDT (
     EntryPtr = 0;\r
     CopyMem (&EntryPtr, (VOID *)(BasePtr + Index * TablePointerSize), TablePointerSize);\r
     Table = (EFI_ACPI_COMMON_HEADER *)((UINTN)(EntryPtr));\r
-    if (Table->Signature == Signature) {\r
+    if ((Table != NULL) && (Table->Signature == Signature)) {\r
       if (PreviousTable != NULL) {\r
         if (Table == PreviousTable) {\r
           *PreviousTableLocated = TRUE;\r