From: Star Zeng Date: Mon, 7 Mar 2016 06:01:46 +0000 (+0800) Subject: MdeModulePkg AcpiTableDxe: Use Rsdt to check against NULL X-Git-Tag: edk2-stable201903~7673 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=efef6ad6d7487606782a5d4aa09656fb606129d6;hp=ace1d0517b656a6d15484e875d73c0fe661ac8c7;p=mirror_edk2.git MdeModulePkg AcpiTableDxe: Use Rsdt to check against NULL Some static scan tool may regard CurrentRsdtEntry to be potentially referenced to NULL pointer if CurrentRsdtEntry == NULL is used in the right above if condition judgment. CopyMem (CurrentRsdtEntry, CurrentRsdtEntry + 1, (*NumberOfTableEntries - Index) * sizeof (UINT32)); It is introduced by commit f9bbb8d9c3f065faba9f266cf4e731fe2ca70c4d. To avoid it and have same style with "((Xsdt == NULL) || CurrentTablePointer64 == (UINT64) (UINTN) Table->Table)", use Rsdt instead of CurrentRsdtEntry to check against NULL. Cc: Jiewen Yao Cc: Ard Biesheuvel Cc: Shumin Qiu Cc: Feng Tian Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng Reviewed-by: Shumin Qiu --- diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c index f6229ca05c..7f95b9dc70 100644 --- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c +++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c @@ -1,7 +1,7 @@ /** @file ACPI Table Protocol Implementation - Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
Copyright (c) 2016, Linaro Ltd. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -1132,7 +1132,7 @@ RemoveTableFromRsdt ( // // Check if we have found the corresponding entry in both RSDT and XSDT // - if ((CurrentRsdtEntry == NULL || *CurrentRsdtEntry == (UINT32) (UINTN) Table->Table) && + if (((Rsdt == NULL) || *CurrentRsdtEntry == (UINT32) (UINTN) Table->Table) && ((Xsdt == NULL) || CurrentTablePointer64 == (UINT64) (UINTN) Table->Table) ) { //