Reviewed-by: Qiu Shumin <[email protected]>

-----Original Message-----
From: Zeng, Star 
Sent: Monday, March 07, 2016 3:46 PM
To: [email protected]
Cc: Yao, Jiewen; Ard Biesheuvel; Qiu, Shumin; Tian, Feng
Subject: [PATCH] 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 <[email protected]>
Cc: Ard Biesheuvel <[email protected]>
Cc: Shumin Qiu <[email protected]>
Cc: Feng Tian <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <[email protected]>
---
 MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c 
b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c
index f6229ca..7f95b9d 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.<BR>
+  Copyright (c) 2006 - 2016, Intel Corporation. All rights 
+ reserved.<BR>
   Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>
   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)
         ) {
       //
--
2.7.0.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to